Как сопоставить подкаталоги в RewriteCond? - PullRequest
5 голосов
/ 08 мая 2009

Возникли проблемы с правильным регулярным выражением для RewriteCond

RewriteCond %{REQUEST_URI} !^/foo/

Работает должным образом, то есть не применяется после перезаписи ко всем URL, начинающимся с /foo/.

RewriteCond %{REQUEST_URI} !^/foo/bar/

С другой стороны, не работает, как я ожидаю. URL, начинающиеся с / foo / bar /, все еще переписываются.

Как ввести правильное регулярное выражение для исключения подкаталогов?

1 Ответ

7 голосов
/ 08 мая 2009

Возможно, это новый URL внутреннего перенаправления, к которому применяется правило. Флаг L делает это.

[…] если RewriteRule генерирует внутреннее перенаправление (что часто происходит при перезаписи в контексте для каждого каталога), это перезапустит запрос и приведет к повторной обработке, начиная с первого RewriteRule.

Если вы хотите убедиться, что начальный URL-путь не начинался с «/ foo / bar», проверьте строку запроса (см. THE_REQUEST variable ) :

RewriteCond %{THE_REQUEST} !^[A-Z]+\ /foo/bar/
RewriteRule …
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...