.htaccess, как использовать% {REQUEST_URI} втестовое задание? - PullRequest
0 голосов
/ 19 ноября 2018

Документация 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наборы, которые нужно было пропустить.

...