我想允许/myapp
并/myapp/
禁止其他所有内容。我该如何配置?我尝试了以下方法:
<LocationMatch "^/myapp/.+$">
LDAP here
</LocationMatch>
我认为它不会命中/myapp
或/myapp/
,但它似乎也捕获了这些 URL。
如果我做
<LocationMatch "^/myapp/specificsubdirectory/.*$">
LDAP here
</LocationMatch>
然后这就可以了,但我想阻止应用程序中的所有特定子目录。
答案1
DirectoryIndex 在 LocationMatch 之前应用,重写位置以目录索引文件(index.html、index.php 等)结尾。您的模式
^/myapp/.+$
匹配,因为它实际上适用于
/myapp/index.html
答案2
正则表达式错误。请尝试pcretest(1)
:
$ pcretest
PCRE version 8.37 2015-04-28
re> /^\/myapp\/.+$/
data> /myapp
No match
data> /myapp/
No match
data>
re> /^\/myapp(|\/)$/
data> /myapp
0: /myapp
1:
data> /myapp/
0: /myapp/
1: /
data> /myapp/foo
No match
因此,一个可行的<LocationMatch>
指令是:
<LocationMatch "^/myapp(|/)$">