我最近发现,我的本地计算机上的一些开发网站(Windows 10 / Apache 2.4)在networking上可见时,他们不应该。 这个问题与这个问题类似,但是由于没有提供解决scheme(在post中提出的所有问题都被检查过,并被证实是正确的),所以我在问自己的问题。 以下是相关文件的相关摘录:
# directory and file names obfuscated intentionally <Directory "P:/HTTP/{hidden}"> AllowOverride All AuthType Basic AuthName "Private Content - Authorized Use Only" AuthUserFile P:/.htpasswd Require valid-user </Directory>
AuthType Basic AuthName "You must log in to view this site." AuthUserFile P:/.htpasswd Require valid-user
(注意:为了协助debugging,每个AuthName条目的设置都是不同的)
我知道正在处理.htaccess文件,因为如果我添加一个会导致错误的行,说错误发生,但是当没有错误发生时,我仍然不会得到一个HTTP身份validationlogin。 该网站刚刚出现。 这种情况发生在我试图访问网站的每一台电脑上,而不仅仅是我的本地电脑。 在我的日志文件中没有错误条目(除了从.htaccess中的垃圾文件生成的故意的HTTP 500错误), AllowOverride被设置为ALL ,正如我在上面的摘录中可以看到的那样,并且没有自从上次大约2个月前我做了一个安全testing以来,最近Apache的变化。 系统中唯一的变化就是通过Windows的更新,但是对于这个问题应该没有什么影响。
有趣的是,在同一台计算机上,我有几个虚拟机,都有不同的操作系统/ Apache版本,所有这些虚拟机指向相同的文档根目录(本地框上的SAMBA共享),并且都具有相似的(或相同的)在他们各自的Apacheconfiguration文件中的条目, 他们都工作 。 这只是Win10主机有这个问题。
任何build议或线索将受到感谢。
这就是我的.htaccess文件的样子(Apache 2.2)
AuthName "FBI only" AuthUserFile /etc/apache2/htpasswd-mysite AuthType basic Require valid-user Order Deny,Allow Deny from all Allow from Ip.addr.here Satisfy Any
当我的网站从Ip.addr.here访问,那么密码不是必需的。
在我的Apacheconfiguration文件
<Directory "/var/www/vhosts/site/www"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
所以,尝试添加到htaccess文件这些线
Order Deny,Allow Deny from all
编辑
请参阅http://www.the-art-of-web.com/system/apache-authorization/
从那个链接:
如果您使用旧授权指令升级服务器,则可以通过启用(它应该被默认激活)Apache中的mod_access_compat来使其快速工作:
sudo a2enmod access_compat
在你的情况看,如果你有这个模块启用。
编辑2
请看这个相关的问题并检查Apache日志文件!
在遵循了所有的build议(谢谢大家的build议)之后,回答在这里和其他地方发布的问题,并且总是沮丧地拉出更多的头发,而不是我能承受的损失,我终于find了问题的原因,解决scheme。 事实certificate,祖先文件夹中有另一个允许访问所有子文件夹的.htaccess文件,这个“上游”.htaccess文件覆盖了我正在尝试进行更改的文件中的设置。这似乎很奇怪对我来说,但注释掉祖先.htaccess中的设置导致其他文件按预期开始工作。
这里的底线是如果您的.htaccess文件没有按计划运行,请查看父文件夹以查看是否有其他文件具有不同的设置。