目前,当您访问我网站的子文件夹时,它会显示目录列表。这真的很可怕,因为它包含带有敏感信息的php类。现在,我通过在我的根.htaccess文件中使用“IndexIgnore *”来成功删除目录列表。部分通过显示空白目录列表来工作。但是,如果可能的话,我希望能够做到以下两种中的一种:
重定向到上面的文件夹,如果该文件夹不包含index.php,则上升到另一个级别。方便用于http://www.duaworld.com/resources/images/about
如果无法做到这一点,只需重定向到网站的根目录
我查看了以下问题,但只有在出现403错误消息时才有效。就我而言,它显示一个空白目录,没有错误。
非常感谢帮助人员。
答案 0 :(得分:1)
对于您的请求可能是best solution
由于
答案 1 :(得分:1)
首先,检查Apache Options
documentation,尤其是:
Options -Indexes
比你有几个选择,做什么,例如:
是这样的目录:
public/
这里只有index.php
和css,js,images ... library/
这里是所有应用程序并设置:
DocumentRoot .../public/
所以私人内容从不会在浏览器中显示
你又有这样的结构:
public_html
- 托管您网络的根目录,index.php
到此处public_html/library
- 私人图书馆如果您有DocumentRoot .../public_html
,则可以创建.htaccess
这样的文件:
Allow from none
Deny from all
Order allow,deny
至少我记得它是phpBB的一部分
使用上下文创建index.html
(或index.php
或两者):
<h1>Hacker attempt!</h1>
我肯定会选择“Zend way”(即使你控制了你的网络服务器,你可能会意外地允许Indexes
)。
如果你不能(例如糟糕的托管配置或你没有使用依赖注入和手动包含文件)并且你必须在公共目录(ab)中有敏感数据,用户也可能总是正确地猜测文件名,所以你应该添加对每个敏感文件(php)都是这样的:
if( !defined( 'IN_APPLICATION')){
die('Hacker attempt!');
}
同时使用提到的.htaccess
和Deny from all
,只是为了防止错误配置将index.html
添加到每个目录。
如果您需要将私人文件保存在公共html目录中,只是因为您的应用程序中有许多固定路径(设计很差),您可以执行符号链接:
.../public_html/library -> .../private
并添加:
Options -FollowSymlinks
答案 2 :(得分:0)
有几种方法......其中一种方法是使用.htaccess,或者如果你想从PHP中获取它,只需像这样创建 index.php
脚本
<?php header('Location: ../'); ?>
并将其放入除root之外的每个(子)目录中。
这会将所有目录请求重定向到主页(实际上是上级目录)。
(我不再使用这个解决方案了,但在我找到.htaccess之前我就这样做了)