我有这 2 个 LocationMatch 指令
<LocationMatch "^.*system/app_dev\.php(.*)$">
ProxyPass fcgi://127.0.0.1:9998/var/www/example.com/trunk/system/web/app_dev.php
</LocationMatch>
<LocationMatch "^.*system(.*)$">
ProxyPass fcgi://127.0.0.1:9998/var/www/example.com/trunk/system/web/app.php
</LocationMatch>
我预计
http://example.com/system/app_dev.php/files/abc
与第一条规则匹配
http://example.com/system/files/abc
根据第二条规则。
然而就我而言,两者都符合第二条规则。
这是 Apache 2.4
答案1
应该定义 Location 和 LocationMatch,首先不太具体。因此第二个被匹配,因为它应该首先被定义,并且它会覆盖你在第一个中定义的内容。
答案2
尝试逃避斜线?
<LocationMatch "^.*system\/app_dev\.php(.*)$">