Apache LocationMatch授权PHP的所有子路径

时间:2013-02-08 23:28:51

标签: php apache authorization

我们有一个PHP网站:

site.com

我们希望来自root的所有子路径都需要基本身份验证。例如

site.com - 无需身份验证

site.com/subpath需要身份验证

我们有这个指令:

<LocationMatch "^/.+$">

  AuthName "members Only"
  AuthType Basic
  AuthBasicProvider file
  AuthUserFile /Applications/MAMP/conf/apache/extra/auth-pass-file
  Require valid-user
 </LocationMatch>

但是,当我们转到http://site.com/http://site.com时,它会要求输入密码。

有人可以建议一个解决方案,只要求授权子路径吗?

3 个答案:

答案 0 :(得分:0)

<LocationMatch "^/.*/.+$">应该有效。您的LocationMatch实际上是在根目录中选择所有内容,您需要向下一级。

答案 1 :(得分:0)

我们添加了要检查的特定目录(存在的目录),并在人们尝试捕获不存在的页面时创建了错误重定向。

答案 2 :(得分:0)

因为authz规则不仅适用于实际请求的/,而且适用于扩展到的内容 - 例如/index.html

不幸的是,您需要单独允许...