2011-05-14 135 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