我在我的apache服務器上創建了一個基於查詢的身份驗證,但是我從apache得到了一個奇怪的行爲,並且找不到我的出路。這裏是.htaccess代碼:htaccess apache mod_rewrite&身份驗證:奇怪的行爲
RewriteEngine on
RewriteCond %{QUERY_STRING} p=1
RewriteRule ^(.*)$ $1?map=$1 [E=authme:1]
Order deny,allow
Deny from env=authme
AuthType Basic
AuthName "Login Required"
AuthUserFile /var/www/test/.htpasswd
require valid-user
Satisfy any
我希望apache查看p = 1的查詢字符串。如果發現設置了環境變量(authme = 1)。這工作正常!
如果p = 1出現在查詢字符串中,我期望認證是必需的(拒絕來自env = authme)。
所有這些東西奇妙地工作,如果從瀏覽器調用主索引文件(在我的情況下index.php),但根本不工作如果調用同一目錄中的其他文件。
環境變量設置正確(我可以使用PHP進行檢查),但不需要驗證。
我真的不明白爲什麼。任何幫助將不勝感激!
更多信息,可以發現here
你是對的。在我的服務器上,我'需要有效用戶',但它仍然無法工作。我嘗試使用'[L]'語句使我的重寫規則的最後一條規則如@ Z99所示,但沒有任何變化。這是一個Apache錯誤? – bradypus 2012-02-04 13:48:35