我的规则在 .htaccess 中运行良好,例如强制 https。但是下面的否认,允许是行不通的。
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
.conf 可以否决 htaccess 吗?我应该注意什么?是否有任何模块可能导致此问题?.htaccess 本身有效,它只是拒绝,允许部分。
这个订单的原因是我可以在没有人看到的情况下开发非现场站点。
提前致谢。
我的规则在 .htaccess 中运行良好,例如强制 https。但是下面的否认,允许是行不通的。
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
.conf 可以否决 htaccess 吗?我应该注意什么?是否有任何模块可能导致此问题?.htaccess 本身有效,它只是拒绝,允许部分。
这个订单的原因是我可以在没有人看到的情况下开发非现场站点。
提前致谢。
您应该查看 conf 文件中的AllowOverride子句。他们基本上授权 .htaccess 覆盖 .conf 文件中的值。
这种情况经常发生在我身上,而且总是因为我没有使用我认为我正在使用的 IP 地址。这听起来很傻,但做起来却出奇的容易,因为 Internet 上的大多数计算机至少可以由两个 IP 地址表示:一个专用于 LAN,一个暴露于 Internet,通常通过启用 NAT 的路由器。
例如,我正在设置一个国家 IP 块白名单。我认为由于我与服务器在同一个局域网中,我不会从白名单开始,这将是一个很好的测试机会。但是,无论我做什么,我似乎都无法通过适当的白名单来否认自己。我忘记了我正在通过其外部 IP 访问我的服务器:我要去home.example.com
,我已将其映射到我的路由器的 Internet IP 地址。我的路由器知道我打算环回网络,所以它是无缝的——直到我的 IP 地址很重要。
当然,有一些骇人听闻的方法可以让我在不使用 LAN IP 的情况下解决这个问题。看起来 Apache 似乎有问题,因为我可以取出一个Allow from
语句,它会起作用。
关键是:如果它不起作用,请在 Apache 的眼中检查您的 IP 地址。
实际问题是您定义拒绝/允许或允许/拒绝的顺序是什么?下面的文件按预期对我有用。
您的.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
不要忘记:如果它也适合你,请竖起大拇指。
我解决了这个问题,我将坏机器人块移动到每个域的 vhost 文件中,现在使用 vhost 文件来限制访问。无法为机器人在全球范围内做到这一点有点痛苦,所以如果其他人有更好的答案,我们会欢迎:)