Документация Apache по использованиютесты с регулярными выражениями, кажется, говорят, что вы можете сделать это с% { переменными }, такими как % {REQUEST_URI} , но это не показываетлюбые примеры того, как на самом деле это сделать.
Мой .htaccess страдает от цикла модификации URL-адреса, где после успешного прохождения через .htaccess и изменения URL-адреса на нужное мне значение, «движок» повторноснова запускает .htaccess из-за перенаправления, но на этот раз результирующий URL-адрес теперь неверен или отсутствует.Я потратил много времени, пытаясь «сжать» RewriteCond / RewriteRule, чтобы предотвратить это, но мне не очень повезло.
Можно ли явно запретить запуск блока перезаписей, когдаВходящий URL-адрес действителен для моего сайта, возможно, с оператором ?
# Prevent valid URL from being modified ...
# The following regular expression in the <if> need to some how operate on %{REQUEST_URI}!
<If "%{REQUEST_URI} !~ m#^/app(?:_dev)?\.php/controller/home(/[a-z0-9]+)1?/?$#">
# RewriteCond/RewriteRule sets to modify the URL go here
</If>
# Other RewriteCond/RewriteRule sets used by Symfony2 go here.
Я понимаю, что , показанный в моем примере кода, неверно, но я незнать, как «вставить» % {REQUEST_URI} в регулярное выражение.
Я спрашиваю о , потому что это не вызывает перенаправление и может пропускатьпроизвольное число наборов RewriteCond / RewriteRule в блоке операторов и, тем не менее, позволяют другим наборам, следующим за блоком операторов, по-прежнему работать нормально.Хотя флаг [S = ###] набора RewriteCond / RewriteRule, по-видимому, также допускает это, это приведет к другому перенаправлению и последующему циклу, плюс мне придется обновлять ### каждый раз, когда я меняю RewriteCond / RewriteRuleнаборы, которые нужно было пропустить.