无法允许/拒绝访问 IP

Jon*_*Lay 4 cloudflare apache-2.4

我在 Ubuntu 14.04 上有一个可以正常工作的服务器。我正在尝试使用允许/拒绝块来限制对文件的访问:

<Files "login.php">
order deny,allow
deny from all
allow from 22.123.123.12
</Files>
Run Code Online (Sandbox Code Playgroud)

这成功地拒绝了所有用户并告诉他们“禁止访问。您无权访问...”。如果我删除“拒绝所有人”行,它允许我查看登录屏幕。

但是无论我做什么和调试,当我使用这个IP地址时,我都无法让它让我查看这个文件。“允许”语句似乎永远不起作用。

一些调试已经尝试过:

  • 我尝试AllowOverride All在我的主机配置中添加一个以确保文件/授权模块本身正在工作。
  • 我已经尝试了一堆其他允许/拒绝语句
  • 此语句当前位于 .htaccess 文件中,但我已尝试将其移动到主机配置中,这也不起作用。

其他可能相关的信息:

  • 我使用了一些 PHP 在网页上输出我的 IP:它被成功识别为 22.123.123.12。
  • 我在网页上使用 SSL,所以我正在访问https://example.com/login.php 上的文件。不确定这是否会影响事情。

我开始怀疑由于某种原因服务器不认为我在这个 IP 地址,但无法弄清楚情况会如何。有任何想法吗?

Jon*_*Lay 7

感谢@ChrisLam 的评论,我意识到访问日志中显示的 IP 地址与我当前的 IP 地址不同。

这个 IP 108.162.225.167 似乎与 CloudFlare.com 的服务器匹配,我们用它来加速站点。

尽管设置了不缓存此页面的规则,但请求的 IP 地址仍未传递回服务器。CloudFlare 说:

“由于 CloudFlare 作为代理,您会注意到网站访问者 IP 地址在服务器日志和 Web 应用程序中的显示方式发生了变化——尤其是所有访问似乎都来自 CloudFlare IP 地址。”

mod_cloudflare为 Apache httpd安装 CloudFlare 的模块允许将这些 IP 地址传递回服务器,并完美地解决了我的问题。

CloudFlare 网站上提供的下载和信息:https : //www.cloudflare.com/resources-downloads#mod_cloudflare