2011-05-14 70 views
18

我試圖密碼保護我的公用文件夾,以便任何人嘗試訪問外部提示輸入密碼,但不是本地。到目前爲止,我已經得到它使用127.0.0.1,但不是本地主機。很明顯,我可以只使用IP地址,但更多的是我想知道爲什麼它不起作用。我不喜歡被打敗!.htaccess密碼保護允許127.0.0.1,但不是本地主機

#Enable Password Protection 
AuthName "Password Protected Server" 
AuthType Basic 
AuthUserFile c:\xampp\apache\security\.htpasswd 
Require valid-user 
Order allow,deny 
Allow from localhost 
Allow from 127.0.0.1 
Satisfy Any 

到目前爲止我的代碼是一個積累:

http://www.groovypost.com/howto/how-to/htaccess-password-protect-apache-website-security/

htaccess password protect but not on localhost

我在Windows 7上運行的XAMPP 1.7.3,如果沒有什麼幫助。

任何援助將不勝感激!

回答

30

聽起來像是IPv6問題。當您使用127.0.0.1連接到該站點時,Apache將該請求視爲來自IPv4本地主機(127.0.0.1)。但是,當連接到本地主機時,Apache將該請求視爲來自IPv6本地主機(:: 1)。

如果出現這種問題,您應該可以通過將Allow from localhost行替換爲Allow from ::1行來解決該問題。

+1

什麼是絕對的英雄! 我碰到過類似的東西,但我把它放在localhost :: 1不是一個單獨的行。感謝您的放心! – tavocado 2011-05-14 22:46:17

+1

+1優秀的捕獲。 – anubhava 2011-05-14 23:57:44

+1

感謝您的支持!然而,對於任何人來說,「localhost」,「127.0.0.1」和「:: 1」僅僅是別名。 Apache是​​否不容易識別這些別名?哦,順便說一下,你可以添加一些關於如何在Apache 2.4+中使用'Require'的信息? – Domi 2014-11-02 11:33:49

相關問題