我有一个在Ubuntu 14.04上工作愉快的服务器。 我试图限制访问一个文件使用允许/拒绝块:
<Files "login.php"> order deny,allow deny from all allow from 22.123.123.12 </Files>
这成功地拒绝了所有的用户,并告诉他们“禁止,您没有权限访问…”。 如果我删除“拒绝所有”行,它允许我查看login屏幕。
但是无论我做什么,debugging,我都无法让我查看这个文件,当我使用这个IP地址。 '允许'的声明似乎从来没有工作。
一些debugging已经试过了:
AllowOverride All到我的主机configuration,以确保文件/授权模块本身工作。 其他可能相关的信息:
我开始怀疑,由于某种原因,服务器不认为我在这个IP地址,但无法弄清楚是怎么回事。 有任何想法吗?
感谢@ ChrisLam的评论,我意识到访问日志中显示的IP地址与我当前的IP不一样。
这个IP,108.162.225.167似乎与我们用来加速网站的CloudFlare.com的服务器相匹配。
虽然有一个规则设置为不caching这个页面,但是请求的IP地址仍然没有被传回服务器。 CloudFlare说:
“由于CloudFlare是代理服务器,因此您会注意到您的网站访问者的IP地址在服务器日志和Web应用程序中的显示方式发生了变化,特别是所有访问似乎都来自CloudFlare IP地址。
为Apache httpd安装CloudFlare的mod_cloudflare模块可以将这些IP地址传回服务器,并且完美解决了我的问题。
下载和CloudFlare的网站上提供的信息: https : //www.cloudflare.com/resources-downloads#mod_cloudflare