簡體   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