我的 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,因此您将无法访问此功能。