我的问题如下。我需要将几个URI放在基本身份验证之后,最好使用.htaccess文件。我使用httpd.conf文件中的Location指令完成了这项工作,但这远非理想。
所以我理想的世界就是这样:
URI1 => user1,pwd1
URI2 - > user2,pwd2
URI3 - >没有auth
URI4 - > user3,pwd3
我已经看到了一些使用env变量的解决方案,但在我看来,那些只能是二进制使用,要么通过一般的htpasswd文件进行身份验证,要么不进行。我的解决方案必须为每个不同的URI设置不同的用户。
如果我的问题没有得到彻底解释,请告诉我。
答案 0 :(得分:0)
您可以使用<Location>
容器代替使用<Files>
容器来匹配请求所在目录中的特定文件。它会以同样的方式工作。
例如,如果您有一个目录“foo”和“bar”,并且在这些目录中,您有文件“type1.php”和“type2.php”,那么您在“foo”中有一个htaccess文件“看起来像:
<Files "type1.php">
# htpasswd stuff
Require user user1
</Files>
<Files "type2.php">
# htpasswd stuff
Require user user2
</Files>
然后在“bar”目录中:
<Files "type1.php">
# htpasswd stuff
Require user user3
</Files>
<Files "type2.php">
# htpasswd stuff
Require user user4
</Files>
答案 1 :(得分:0)
你只需要将.htaccess文件放在每个不同的URI所在的位置......
AuthUserFile /path/to/file/.htpasswd
AuthName "Password Protected"
AuthType Basic
Require valid-user
然后在.htpasswd文件中你有:
user:password
显然你想要加密密码
我认为这就是你要求的?