Как сказать apache в LocationMatch напротив этого?
У меня есть apache conf:
<LocationMatch "^/assets/.*$">
Как я могу ввести директиву, противоположную этому?
Я пробовал <LocationMatch "!^/assets/.*$">
, но это не сработало: (
Ответы
Ответ 1
С Apache 2.2 (не уверен в предыдущих версиях) вы можете использовать регулярное выражение с отрицательным lookahead для соответствия всем корневым каталогам URL-адресов, отличным от /assets
, например:
<LocationMatch "^(?!/assets)/[^/]+">
...
</LocationMatch>
Обратите внимание, что это не включает корневой URL-путь /
.
Ответ 2
К сожалению, LocationMatch не поддерживает отрицательное соответствие:/(для этого вы можете открыть запись Bugzilla, это было бы полезно).
И BTW вы можете просто поместить ^/assets/
в качестве регулярного выражения, нет необходимости сопоставлять полное местоположение.
Одна вещь, которую вы можете сделать, чтобы обойти это, - это определить пустой LocationMatch для ^/assets/
, а затем использовать <Location />
.