[英]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.