301 редирект и ЧПУ помогите!

S
На сайте с 24.05.2008
Offline
37
769

Здравствуйте, помогите пожалуйста разобраться с редиректом динамической ссылки на ЧПУ.

Сделал редирект:

site.ru/?page=name удачно перенаправляет на site.ru/name/

Если ссылка site.ru/index.php?page=name То редирект не работает.

В .htaccess прописано:


RewriteCond %{QUERY_STRING} page=([^&]*)
RewriteRule ^$ /%1? [R=301,L]
PD
На сайте с 05.09.2011
Offline
15
#1
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru [R=301,L]

Добавить как вариант

Баннерная сеть + псевдоподписки (2 в 1)! Впервые в WAP`e! Конвертабельный лейдинг! Ратио 1:2! (http://rusban.su/?ref=1)
S
На сайте с 24.05.2008
Offline
37
#2

Пробовал. Это site.ru/index.php перекидывает на site.ru/ Голову уже сломал не могу разобраться:(

PD
На сайте с 05.09.2011
Offline
15
#3
RewriteRule ^(.*)$ index.php?page=$1 [R=301,L]

Попробуй...

PHPSID добавил 10.12.2011 в 19:05

RewriteCond %{QUERY_STRING} index.php?page=$1 [L]

RewriteRule ^$ /%1? [R=301,L]

Все , я спасть. Уже пишу не соображаю что...

S
На сайте с 24.05.2008
Offline
37
#4

Таким образом получается обратный редирект :)

site.ru/name/ перекидывает на site.ru/index.php?page=name

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

Full version

RewriteCond %{QUERY_STRING} page=([^&]*)

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

S
На сайте с 24.05.2008
Offline
37
#6

В данном случае браузер выдает ошибку:

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

sergeyy добавил 10.12.2011 в 19:25

В таком случае работает, но вид site.ru/name.html не годится :(


RewriteCond %{QUERY_STRING} page_name=([^&]*)
RewriteRule ^index\.php$ /%1.html? [R=301,L]
siv1987
На сайте с 02.04.2009
Offline
427
#7

Значит эти правила пересекаются с другими которые приводят к зацикливанию.

Как вариант

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{QUERY_STRING} page=([^&]*)

RewriteRule ^(index\.php)?$ /%1? [R=301,L]

S
На сайте с 24.05.2008
Offline
37
#8

Спасибо огромное, все заработало! Что означает данная директива RewriteCond %{ENV:REDIRECT_STATUS} ^$ ?

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