如何告诉apache到LocationMatch对面?

时间:2011-12-17 15:19:36

标签: regex apache

我的apache conf中有以下内容:

  <LocationMatch "^/assets/.*$">

如何输入与相反的指令?

我尝试了<LocationMatch "!^/assets/.*$">但是没有用:(

2 个答案:

答案 0 :(得分:29)

使用Apache 2.2(不确定以前的版本),您可以使用带有负前瞻的正则表达式来匹配/assets以外的所有根位置URL路径目录,如下所示:

<LocationMatch "^(?!/assets)/[^/]+">
    ...
</LocationMatch>

请注意,这不包括根URL路径/本身。

答案 1 :(得分:-2)

不幸的是,LocationMatch不支持否定匹配:/(您可以为此打开一个Bugzilla条目,它肯定会有用)。

顺便说一下,你可以简单地将^/assets/作为正则表达式,不需要匹配完整的位置。

要解决此问题,可以做的是为^/assets/定义一个空的LocationMatch,然后使用<Location />