我有一个像www.abc.com/admin
这样的“虚拟”网址,我希望用简单的htpasswd来保护它。该目录在物理上不存在。页面的其余部分应该可供所有人访问。
我知道现有目录的解决方案,并找到<FoldersMatch>
或<DirectoryMatch>
的解决方案,但不幸的是,这不适用于我的webhoster。只有<FilesMatch>
可以。
还有其他办法让它发挥作用吗?
答案 0 :(得分:3)
您可以使用Satisfy Any
语句检查/admin
的请求是否,或者是否有有效用户:
# sets ENV if request is for /admin
SetEnvIf Request_URI ^/admin no_require_auth=true
# Auth stuff
AuthUserFile /var/www/htpasswd
AuthName "Password Protected"
AuthType Basic
# Setup a deny/allow
Order Deny,Allow
# Deny from everyone
Deny from all
# except if either of these are satisfied
Satisfy any
# 1. a valid authenticated user
Require valid-user
# or 2. the "no_require_auth" var is set
Allow from env=no_require_auth