我们在文件夹中有一个.htaccess文件,配置了deny,allow如下:
Order deny,allow
Deny from all
Allow from <whitelist IP>
Allow from <whitelist IP>
....
此文件中没有其他重写等规则,只有拒绝/允许的内容。
如果你尝试去http://www.xyz.site/protected/(无文件名)来自被拒绝的 IP,您会收到预期的 Forbidden 错误。但是,如果您转到http://www.xyz.site/protected/filename.php- 其中 filename.php 是文件夹内的有效文件,例如登录表单,页面加载 - 但没有图像或 CSS(可能仍然被 .htaccess 拒绝)
为什么这个 .htaccess 设置不能阻止被拒绝的 IP 访问整个文件夹 - 是否有冲突的服务器权限覆盖了它?
答案1
这实际上取决于您的配置。如何调用 php 解释器?您是通过 CGI、FastCGI 使用它,还是使用嵌入式 php 解释器(又名 mod_php)?
答案2
听起来 .htaccess 内容没有被解释,并且访问目录时出现“禁止”结果是因为禁止的 DirectoryListings(不存在的索引文件?)。