【问题标题】:How can we get IP based website access?我们如何获得基于 IP 的网站访问权限?
【发布时间】:2016-05-31 07:25:07
【问题描述】:

我已经安装了rockmongo,我只希望我可以通过网络访问它。我已经把这条规则放在.htaccess

order allow,deny
allow from 118.67.228.162
deny form all

但这否认包括我自己在内的所有人。它之前工作正常

【问题讨论】:

  • .htaccess 处理是连续的。尝试先全部拒绝,然后再允许 IP。所以,交换你的第 2 行和第 3 行。
  • 仍然,结果是一样的
  • 哎哟!您还应该将order allow,deny 更改为order deny,allow。另外,请检查thisthis answers

标签: .htaccess web rockmongo


【解决方案1】:

前期见Access control by host

mod_access_compat 提供的 Allow、Deny 和 Order 指令已被弃用,并将在未来的版本中消失。您应该避免使用它们,并避免推荐使用它们的过时教程。

你的指令拒绝所有人,因为

Order Allow,Deny
Deny from all

请参阅Order 了解说明

允许,拒绝
首先,评估所有 Allow 指令;至少一个必须匹配,否则请求将被拒绝。 接下来,评估所有拒绝指令。如果有任何匹配,则拒绝该请求。 最后,默认拒绝任何与 Allow 或 Deny 指令不匹配的请求。

如果你还是想使用它,请参阅Order中的第一个示例

在下面的例子中,example.org 域中的所有主机都被允许访问;所有其他主机都被拒绝访问。

Order Deny,Allow
Deny from all
Allow from example.org

对于特定的 IPv4 地址,这将是

Allow from 1.2.3.4

如果客户端使用 IPv6,示例如下所示

Allow from 2001:db8:85a3::8a2e:370:7334

要找出合适的地址,请访问网站并查看 Apache 的 access.log 文件。在文件末尾,你会发现类似

1.2.3.4 - - [01/Jun/2016:10:10:58 +0200] "GET / HTTP/1.1" 403 492 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0 ) Gecko/20100101 Firefox/45.0"

当它是 IPv4 时,或者

2001:db8:85a3::8a2e:370:7334 - - [01/Jun/2016:10:10:58 +0200] "GET / HTTP/1.1" 403 492 "-" "Mozilla/5.0 (X11 ; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"

当它是 IPv6 地址时。

【讨论】:

  • 感谢您的解释,但我已经尝试过了,但仍然没有运气。有趣的是,如果使用 allow from all 它可以工作。但不适用于个人 ip
  • 好吧,Allow from all 在这种情况下完全按照它所说的 ;-)。我刚刚在我的系统上测试了第一个示例,它的工作原理与宣传的一样。当客户端使用 IPv6 地址连接时,它可能不起作用。请查看我的更新答案。
  • 谢谢,愚蠢的我,我应该先检查日志。我的服务器位于 aws elb 后面,也就是说它被拒绝了,因为它被 elb 访问了。这就是它不起作用的原因。
猜你喜欢
  • 1970-01-01
  • 2022-06-15
  • 2013-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-16
相关资源
最近更新 更多