Единственное решение, которое я могу изобразить, это использовать флаг S
, чтобы пропустить последнее правило:
RewriteRule ^foo foo.php?blah [L,S=999]
RewriteRule ^bar foo.php?baz [L,S=999]
RewriteRule …
Или установить переменную окружения:
RewriteRule ^foo foo.php?blah [L,E=FLAG:1]
RewriteRule ^bar foo.php?baz [L,E=FLAG:1]
RewriteCond %{ENV:FLAG} ^$
RewriteRule …
Редактировать Хорошо, вот еще одно решение, которое сравнивает текущий URL с первоначально запрошенным:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ (/[^?\s]*)\??([^\s]*)
RewriteCond %{REQUEST_URI}?%{QUERY_STRING}<%1?%2 ^([^<]*)<\1$
RewriteRule …
Но я думаю, что для этого требуется как минимум Apache 2, потому что Apache 1.x, использующий POSIX ERE, и POSIX ERE, не поддерживают \
n
обратных ссылок в шаблоне.