apache 使用带有env变量的DirectoryMatch表达式来检测某些子文件夹

lbsnaicq  于 2022-11-16  发布在  Apache
关注(0)|答案(1)|浏览(76)

我目前在网站的DocumentRoot中有一个.htaccess文件,用来控制对某些文件的直接访问。
另外两个应用程序(每个都有自己的.htaccess)安装在子文件夹(\app1\app2)中,但受父级规则传播的影响。
我的目标是将根目录的.htaccess移到Apache主配置中,并设置一个条件,将它们排除在\app1\app2子文件夹之外。
我设法用LocationMatch检测到子文件夹

<LocationMatch "^(?!/(?:app1|APP1|app2|APP2))/[^/]+">   
    Header set X-TEST-LOCATION "ROOT-APP"
</LocationMatch>

DirectoryMatch指令的等效条件是什么?我定义了一个自定义的DEF_ROOT变量,但它似乎不起作用

<DirectoryMatch "(?!${DEF_ROOT}/main-app/(?:app1|APP1|app2|APP2))/[^/]+">
    Header set X-TEST-LOCATION "ROOT-APP"
</DirectoryMatch>

在Windows上运行Apache 2.4。
谢谢你!

jv4diomz

jv4diomz1#

我设法做到了

<DirectoryMatch "^(?i)${DEF_ROOT}/main-app(?!/\b(app1|app2|app3)\b)">
    Header set X-TEST-LOCATION "D-MAIN"
</DirectoryMatch>

相关问题