1

我的规则在 .htaccess 中运行良好,例如强制 https。但是下面的否认,允许是行不通的。

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

.conf 可以否决 htaccess 吗?我应该注意什么?是否有任何模块可能导致此问题?.htaccess 本身有效,它只是拒绝,允许部分。

这个订单的原因是我可以在没有人看到的情况下开发非现场站点。

提前致谢。

4

4 回答 4

1

您应该查看 conf 文件中的AllowOverride子句。他们基本上授权 .htaccess 覆盖 .conf 文件中的值。

于 2012-09-07T12:41:08.237 回答
1

这种情况经常发生在我身上,而且总是因为我没有使用我认为我正在使用的 IP 地址。这听起来很傻,但做起来却出奇的容易,因为 Internet 上的大多数计算机至少可以由两个 IP 地址表示:一个专用于 LAN,一个暴露于 Internet,通常通过启用 NAT 的路由器。

例如,我正在设置一个国家 IP 块白名单。我认为由于我与服务器在同一个局域网中,我不会从白名单开始,这将是一个很好的测试机会。但是,无论我做什么,我似乎都无法通过适当的白名单来否认自己。我忘记了我正在通过其外部 IP 访问我的服务器:我要去home.example.com,我已将其映射到我的路由器的 Internet IP 地址。我的路由器知道我打算环回网络,所以它是无缝的——直到我的 IP 地址很重要。

当然,有一些骇人听闻的方法可以让我在不使用 LAN IP 的情况下解决这个问题。看起来 Apache 似乎有问题,因为我可以取出一个Allow from语句,它会起作用。

关键是:如果它不起作用,请在 Apache 的眼中检查您的 IP 地址。

于 2013-06-29T07:49:58.897 回答
1

实际问题是您定义拒绝/允许或允许/拒绝的顺序是什么?下面的文件按预期对我有用。

您的.htaccess文件应如下所示:

Order Deny,Allow
Allow from 12.99.60.128
Allow from 79.18.77.63
Allow from 181.67.136.49
Deny from All

不要忘记:如果它也适合你,请竖起大拇指。

于 2020-07-03T21:30:13.287 回答
0

我解决了这个问题,我将坏机器人块移动到每个域的 vhost 文件中,现在使用 vhost 文件来限制访问。无法为机器人在全球范围内做到这一点有点痛苦,所以如果其他人有更好的答案,我们会欢迎:)

于 2012-09-10T15:06:59.060 回答