如何为Apache'DirectoryMatch'编写格式正确的正则表达式?

时间:2017-01-17 23:23:48

标签: regex apache

我已经尝试将其写入我的配置文件,仅匹配该“示例”目录中的文件夹而没有其他子文件夹......

<DirectoryMatch "\/var\/www\/html\/example\/[^/]+\/">
    IndexIgnore ..
</DirectoryMatch>

我试过的其他正则表达式......

/var/www/html/example/[^/]+/
/var/www/html/example/(.+/){1}

如果我明确地写了文件夹的路径,它就可以了。我哪里错了?

我看到Apache使用PCRE库提供的Perl兼容正则表达式。

服务器版本:Apache / 2.4.18(Ubuntu)

服务器内置:2016-07-14T12:32:26

1 个答案:

答案 0 :(得分:1)

/不需要转义。使用^$标记匹配路径的开头和结尾。尾部斜杠必须是可选的(/?)。

<DirectoryMatch "^/var/www/html/example/?$">
  ...
</DirectoryMatch>

<DirectoryMatch "^/var/www/html/example/[^/]+/?$">
  ...
</DirectoryMatch>