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

Тема в разделе "Администрирование серверов", создана пользователем outbox, 8 сен 2010.

Статус темы:
Закрыта.
Модераторы: mefish, stooper
  1. outbox

    outbox Создатель

    Регистр.:
    5 фев 2008
    Сообщения:
    28
    Симпатии:
    9
    всем привет!

    есть 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
    значит должно ловиться и останавливаться, перекидваться на статик уже новым запросм приходить туда и ловиться уже другим правилом, первым. или нет?

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

    wal Постоялец

    Регистр.:
    24 мар 2008
    Сообщения:
    89
    Симпатии:
    30
    нужно добавить проверку ип...
    потому как вы проксируете запрос, поэтому в роле ип клиента будет в этом случае ип сервера

    RewriteCond %{REMOTE_ADDR} !^ip сервера$
    RewriteCond %{REQUEST_URI} ^/?ACTION=article&name=(.*)$ [NC]
    RewriteRule ^/?ACTION=article&name=(.*)$ /articles/$1.jsp [R=301,L]

    вот как-то так...
     
    outbox нравится это.
  3. outbox

    outbox Создатель

    Регистр.:
    5 фев 2008
    Сообщения:
    28
    Симпатии:
    9
    Уважаемый wal, благодарю - это то что нужно!
     
Статус темы:
Закрыта.