Mod rewrite

[Удален]
453

Здравствуйте уважаемые форумчане.

Будьте так добры, подскажите, что делаю ни так.

Вообщем нужно сделать чтобы со страниц вида www.site.ru/BLA_BLA_BLA.html был редирект на www.site.ru/news.php?id=BLA_BLA_BLA, но в тоже время при заходе по адресу www.site.ru/news.php?id=BLA_BLA_BLA был 301 редирект на www.site.ru/BLA_BLA_BLA.html.

Вот код из htaccess'a

RewriteEngine On

RewriteCond %{QUERY_STRING} ^id=(.*)$

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

RewriteRule ^([^/]+)\.html$ news.php?id=$1 [L]

LovelAss
На сайте с 05.06.2009
Offline
96
#1
ahoj:
подскажите, что делаю ни так.

Бесконечную переадресацию Вы делаете.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#2

Да это понятно, мозила об этом уже подсказал. Но как ее прекратить? Я так понимаю для этого нужно какой-то РеврайтКонд прописать?

Подпись))
LovelAss
На сайте с 05.06.2009
Offline
96
#3

Изменить условия редиректа, иначе никак. В примере из первого поста можно прекратить её только скриптом, сохраняя информацию о редиректе и в последствие проверяя её.

siv1987
На сайте с 02.04.2009
Offline
427
#4
Милованов Ю.С:
Но как ее прекратить? Я так понимаю для этого нужно какой-то РеврайтКонд прописать?

Не прекратить, потому что по задаче у ТС выходит бесконечный редирект. Может быть просто он не правильно выразился. Не может быть два редиректа с одного адреса на другой. Если реврайт и редирект - тогда да. В таком случае

RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$

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

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

RewriteRule ^([^/]+)\.html$ news.php?id=$1 [L]

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