繁体   English   中英

htaccess:RewriteEngine On和AuthUserFile冲突

[英]htaccess: RewriteEngine On and AuthUserFile conflict

让我们考虑用以下.htaccess保护的文件夹www.mydomain.com/exemple:

.htaccess

AuthUserFile /root/FTPname/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Restricted Access"
AuthType Basic
require valid-user

仅当用户具有特定的Cookie或出现错误(带有以下[F]标志)时,我才希望允许访问示例文件夹。 然后,我实现了以下代码:

.htaccess

RewriteEngine On
RewriteCond %{HTTP_COOKIE} !CookieName=CookieValue
RewriteRule .* - [F,L]

AuthUserFile /root/FTPname/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Restricted Access"
AuthType Basic
require valid-user

问题是,当我加载没有cookie的示例文件夹时,它将首先通过身份验证过程...我想先引发错误。 有谁知道?

尝试使用新的环境变量“让任何人满意”。 这里显示了两种技术: .htaccess虚拟主机的基本身份验证? 一个使用SetEnvIf,另一个使用RewriteRule设置变量。 由于SetEnvIf无法检测到cookie,因此需要RewriteRule。 但是我在共享主机平台上发现RewriteRule无法与“满足任何条件”一起使用。 如果它适合您,它将看起来像:

RewriteEngine On
RewriteCond %{HTTP_COOKIE} !CookieName=CookieValue
RewriteRule .* - [L,E=DENY:1]

AuthUserFile /root/FTPname/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Restricted Access"
AuthType Basic

Order Deny,Allow
Satisfy any
Deny from all
Require valid-user
Allow from env=!DENY

另请参阅: htaccess从基本身份验证中排除一个网址

请注意,您要保护的页面不包括图像,样式表等,而页面本身则不会触发身份验证请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM