Убрать часть урла через .htaccess. как?

Pro100User
На сайте с 09.08.2010
Offline
114
1386

есть адрес вида: http://site.ru/content.php?r=585-title-here

Из него нужно сделать такой: http://site.ru/585-title-here

Т.е. нужно вырезать мусор - "content.php?r="

Какое для этого нужно прописать правило в .htaccess ?

Все пожелания будут учтены, прочтены и похерены... https://capital.kiev.ua/hostely-kieva-v-chem-otlichiya-i-nyuansy/
G
На сайте с 06.02.2013
Offline
51
#1

Шаблон - правим под себя:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?furl=$1 [L,QSA]
</IfModule>
Pro100User
На сайте с 09.08.2010
Offline
114
#2

Т.е. в моем случае должно быть так?

<IfModule mod_rewrite.c>

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ content.php?r=$1 [L,QSA]
</IfModule>


---------- Добавлено 16.07.2014 в 02:05 ----------

прописал так как написано выше - никаких изменений.
C
На сайте с 04.02.2005
Offline
277
#3
Pro100User:
есть адрес вида: http://site.ru/content.php?r=585-title-here
Из него нужно сделать такой: http://site.ru/585-title-here

Т.е. нужно вырезать мусор - "content.php?r="

Какое для этого нужно прописать правило в .htaccess ?

Максимум что вы можете сделать

Это редтрект

с

http://site.ru/content.php?r=585-title-here

на

http://site.ru/585-title-here

А кто генерит такой урл? система? тогда она должна и генерить

http://site.ru/585-title-here

а htccess'у уже отдать редирект

Pro100User
На сайте с 09.08.2010
Offline
114
#4

content.php?r=585- это генерит система

title-here - это можно вписать руками в настройках сео

siv1987
На сайте с 02.04.2009
Offline
427
#5

RewriteEngine On

RewriteCond %{QUERY_STRING} ^r=(.+)$

RewriteRule ^content\.php /%1? [R=301,L]

G
На сайте с 06.02.2013
Offline
51
#6
siv1987:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^r=(.+)$
RewriteRule ^content\.php /%1? [R=301,L]

Совсем забыл об этом варианте. :) Он самый правильный. Делает 301-й редирект.

Только если на сервере отключен мод-реврайт, то даст ошибку сервера 500. В ифы обернуть не помешает.

Pro100User
На сайте с 09.08.2010
Offline
114
#7

при таком способе переходит на адрес без content.php?r= но выдает 404

siv1987
На сайте с 02.04.2009
Offline
427
#8
Pro100User:
при таком способе переходит на адрес без content.php?r= но выдает 404

А вам реврайты есть? Вы вообще что делаете - редирект или реврайт? пишите точнее что вам нужно

G
На сайте с 06.02.2013
Offline
51
#9

попробуйте вот так:


RewriteEngine On
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ content.php?r=$1 [R=301,L,QSA]
</IfModule>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий