我知道这里已经提出了这个问题:htaccess exclude multiple url from Basic Auth但在答案中,我没有找到解决方案我的问题,所以我在这里重新开始。
我想阻止使用htpasswd访问项目的根目录,除了api url(它不是现有文件夹,而是由index.php控制的端点)。
到目前为止,这是我用于htaccess的内容:
<Location />
AuthType Basic
AuthName "Auth Required"
AuthUserFile /home/user/.htpasswd
Require valid-user
SetEnvIf Request_URI "(api|oauth)$" allow
Order allow,deny
Allow from env=allow
Satisfy any
</Location>
=&GT; htpasswd有效,但它也阻止/ api / xxx。
有人可以帮我纠正吗?
答案 0 :(得分:0)
你可以像这样使用它:
SetEnvIf Request_URI "/(api|oauth)(/.*)?$" allow
AuthType Basic
AuthName "Auth Required"
AuthUserFile /home/user/.htpasswd
Require valid-user
Satisfy any
Order deny,allow
Deny from all
Allow from env=allow
Also note that the <Location>
directive is not allowed in .htaccess
.