Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-talk] ???????? ??????????? ? mod_rewrite - ??????



Добрый день!

Столкнулся я со странной проблемой, которую удалось решить небольшим
патчем в mod_rewrite.  Интересно, кто-нибудь с таким сталкивался?  И
насколько неадекватные последствия возможны от такого решения?

Перехожу к сути дела. Понадобилось нам реализовать такую штуку, чтобы
в документе можно было написать <!--#include virtual="/something" -->,
при этом чтобы этот-самый something при помощи mod_proxy запрашивался
с совершенно другого сервера.

Вроде бы, все должно быть просто.  Итак, пишу:

RewriteEngine On
RewriteRule ^/something http://other.host/something [P]

Проверяю.  Захожу на http://my.host/something - все работает как и
ожидалось. Но, при попытке подключить /something через include
virtual - уже не работает. Расследование показало, что в коде
mod_rewrite.c есть следующее:

    /*
     *  Ignore this rule on subrequests if we are explicitly
     *  asked to do so or this is a proxy-throughput or a
     *  forced redirect rule.
     */
    if (r->main != NULL &&
        (p->flags & RULEFLAG_IGNOREONSUBREQ ||
         p->flags & RULEFLAG_PROXY          ||
         p->flags & RULEFLAG_FORCEREDIRECT    )) {
        continue;
    }

То есть, директивы RewriteRule с ключем [P] явным образом игнорируются
для subrequest-ов. Понятное дело, я выкинул из этого условия строчку
про RULEFLAG_PROXY, и все у меня заработало. Но остался вопрос - а
зачем это было надо? Почему плохо использовать proxy-запросы для
subrequest-ов? Какие могут быть отрицательные последствия снятия этого
ограничения?


С уважением,
Сергей Герштейн 

--
заместитель директора по развитию
телекоммуникационная компания Урал Релком
// mailto:sg@xxxxx, тел (3432) 776440, 776441, факс 594956


=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.