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

标签 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

最佳答案

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

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

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

关于regex - 如何为 Apache 'DirectoryMatch' 编写格式正确的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41708810/

相关文章:

php - XAMPP - phpMyAdmin 错误 session_start() 权限被拒绝 (13)

python - 使用正则表达式 python 提取引号之间的文本

java - 使用一个正则表达式将整个文本拆分为单词

java - 使用 apache compress/org.tukaani.xz 在 java 中解压/解密受密码保护 (AES 256) 7z 文件的问题

apache - 如何使 cfimage 在 Apache 上与 ColdFusion 10 一起工作?

php - 无法在外部 dbgetaddrinfo 上连接 Wordpress 失败 : Name or service not known

regex - Ant replaceregexp 任务 - 匹配和替换 HTML 注释 block

regex - 替换两个特殊字符之间的文本

Python正则表达式将组1替换为特定字符串

php - 验证 CSV 文件是否真的是 CSV 文件