2012-09-07 50 views
1

我有规则在.htaccess中正常工作,如强制https。但以下否认,允许就是行不通。命令拒绝,不允许在htaccess中工作

order deny,allow 
deny from all 
allow from xxx.xxx.xxx.xxx 

.conf能否覆盖htaccess?我应该注意什么?有没有可能导致此问题的模块? .htaccess本身的作品,它只是否认,允许部分。

这样做的原因是为了让我能发展非直播现场没有人看见。

在此先感谢。

回答

0

我解决了这个我感动坏机器人块到每个域的虚拟主机文件,现在使用的虚拟主机文件来限制访问。一个痛苦的事情不是能够为机器人做这样全球,如果其他人有更好的答案会受到欢迎:)

+0

你能分享你在vhost中所做的改变吗文件 –

+0

不幸的是,这只是一个解决方法,不能解决问题。我不再拥有这台服务器,并且没有这个问题,因为无法为您提供任何我害怕的东西。 – n00bstacker

1

你应该看看在你的conf文件的AllowOverride条款。他们基本上授权.htaccess覆盖.conf文件中的值。

+0

奇怪的事情正在发生。我在httpd.conf中添加了一个AllowOverride all到/ var/www/vhosts,并且它没有工作,并且当我添加/ AllowOverride All时,我最终得到了它的工作。但显然我不想出于安全原因这么做。所以我改变/限制为一个测试,并没有工作,所以我改回到所有,它仍然不工作,即使我只是有工作 - :S ODD。我重新加载重新启动并停止并启动Apache几次。哦,我对每一次尝试都深深地感到满意 – n00bstacker

+0

您可能有几个.conf文件。通常我们每个虚拟主机都有一个。在每个虚拟主机中,您可以设置AllowOverride选项。 – Bgi

+0

因此,举例来说,我应该能够设置: <目录“/var/www/vhosts/domain.com/httpdocs”> 的AllowOverride所有 这应该允许覆盖,尽管对的AllowOverride /被设置为没有。对? 我已经添加到主httpd.conf和vhosts文件中,没有喜悦。我已经读过虚拟主机文件,看不到任何冲突。实际上,除了我刚刚添加的那个以外,vhosts文件中没有其他AllowOverride选项。 – n00bstacker

1

这发生在我身上的时候,它是因为我没有使用的总是我认为我正在使用的IP地址。这听起来很愚蠢,但这很容易做到,因为互联网上的大多数计算机可以用至少两个IP地址表示:一个专用于LAN,一个公开给Internet,通常通过启用NAT的路由器。

例如,我正在设置一个国家IP地址白名单。我认为,由于我和我的服务器位于同一局域网中,所以我不会从白名单开始,这将为我提供一个良好的测试机会。但是,无论我做什么,我都无法用适当的白名单来否认自己。我忘记了我通过外部IP访问我的服务器:我打算登录到我的路由器的Internet IP地址home.example.com。我的路由器明白我打算重新回到网络,所以它是无缝的 - 直到我的IP地址重要。

有hackish的方式,我可以得到解决的问题,而不要去LAN IP,当然。它可能看起来像Apache是​​越野车,因为我可以拿出一个Allow from声明,它会起作用。

的一点是:如果它不工作,在阿帕奇的眼睛检查你的IP地址。

相关问题