在 DirectoryMatch 指令中使用命名组

在 DirectoryMatch 指令中使用命名组

我的 httpd.conf 中有以下指令:

<DirectoryMatch ^/path/(?P<SI>[^/]+)/logs/bibi>
    php_admin_value open_basedir /path/?P=<SI>/
</DirectoryMatch>

模式识别(?P<SI>[^/]+)工作,但我找不到如何使用指令中的说明。该网站http://httpd.apache.org/docs/current/sections.html帮助不大(语法不适用于我的 2.2 apache)但至少他们提到了这种可能性:

包含命名组和反向引用的正则表达式将以大写形式添加到环境中。这样就可以从表达式和 mod_rewrite 等模块中引用文件名路径和 URL 的元素。

<DirectoryMatch ^/var/www/combined/(?<SITENAME>[^/]+)>
    require ldap-group cn=%{env:SITENAME},ou=combined,o=Example 
</DirectoryMatch>

有什么想法吗?我想使用命名组来说明。

答案1

您所参考的文档适用于当前版本的 Apache。<DirectoryMatch>文档中有说明

从 2.4.8 开始,命名组和反向引用被捕获并以相应的名称加上前缀“MATCH_”并以大写字母写入环境...

由于您使用的 Apache 版本早于 2.4.8,因此您将无法访问此功能。

相关内容