2012-11-05 31 views
1

讓我們考慮用下面的.htaccess保護的文件夾www.mydomain.com/exemple:htaccess的:RewriteEngine敘述在和衝突的AuthUserFile

的.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的加載文件夾爲例,它經過了鑑別處理第一......我想這樣做提高錯誤首先。有誰知道?

+1

OT:不需要'AuthGroupFile/dev/null' –

回答

1

嘗試使用新的環境變量「滿足任何」。這裏顯示了兩種技術: .htaccess basic auth by virtual host?一個使用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 exclude one url from Basic Auth

當心,你要保護的頁面不包括圖片,樣式等,觸發認證請求當頁面本身沒有。

相關問題