mod_rewrite: двунаправленный редирект

O
На сайте с 19.01.2010
Offline
43
601

здравствуйте, уважаемые!

есть Apache который стоит фронтендом и через mod_rewrite ловит урлы статического вида:

http://site.com/articles/Article_Name.jsp

и отправляет его на бэкенд сервер Tomcat уже в динамике:

http://site.com/?ACTION=article&name=Article_Name

вот таким правилом:

RewriteCond %{REQUEST_URI} ^/articles/(.*)$ [NC]

RewriteRule ^/articles/(.*).jsp$ ?ACTION=article&name=$1 [P]

искалки пронюхали как-то динамический урл и теперь ходят по нему и по статическому, то есть дублирование идет что нехорошо.

вопрос: можно ли сделать чтобы по приходу к Апачу запроса в динамике, перекидывало 301 редиректом на статический урл? у меня не получилось - происходит зацикливание... вот таким правилом:

RewriteCond %{REQUEST_URI} ^/?ACTION=article&name=(.*)$ [NC]

RewriteRule ^/?ACTION=article&name=(.*)$ /articles/$1.jsp [R=301,L]

я не понимаю почему, стоит же флажок L-last

значит должно ловиться и останавливаться, перекидваться на статик уже новым запросм приходить туда и ловиться уже другим правилом, первым. или нет?

подскажите плиз кто сталкивался, а то моск съело! (((

заранее благодарен!

D
На сайте с 28.06.2008
Offline
1114
#1

А не проще динамику в роботе по маске закрыть от индексации?

Disallow: /?*

O
На сайте с 19.01.2010
Offline
43
#2

наверное можно так, но заказчику хочется 301 редирект...

O
На сайте с 19.01.2010
Offline
43
#3

нужно было добавить проверку ип...

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

RewriteCond %{REMOTE_ADDR} !^ip сервера$

RewriteCond %{REQUEST_URI} ^/?ACTION=article&name=(.*)$ [NC]

RewriteRule ^/?ACTION=article&name=(.*)$ /articles/$1.jsp [R=301,L]

спасибо добрым людям подсказали!

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