对.htaccess文件中的不同URI使用基本身份验证

时间:2014-04-22 18:07:52

标签: .htaccess basic-authentication

我的问题如下。我需要将几个URI放在基本身份验证之后,最好使用.htaccess文件。我使用httpd.conf文件中的Location指令完成了这项工作,但这远非理想。

所以我理想的世界就是这样:

URI1 => user1,pwd1

URI2 - > user2,pwd2

URI3 - >没有auth

URI4 - > user3,pwd3

我已经看到了一些使用env变量的解决方案,但在我看来,那些只能是二进制使用,要么通过一般的htpasswd文件进行身份验证,要么不进行。我的解决方案必须为每个不同的URI设置不同的用户。

如果我的问题没有得到彻底解释,请告诉我。

2 个答案:

答案 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

显然你想要加密密码

我认为这就是你要求的?