当某人试图通过浏览器找到它时,将文件夹设置为拒绝访问

时间:2013-05-24 07:55:08

标签: cakephp cakephp-2.0

在cakephp网站上,当有人尝试通过浏览器找到文件夹时,如何将文件夹设置为拒绝访问。

示例:默认情况下有人尝试输入www.example.com/img会列出我的cakephp网站上的所有图片和目录。我想限制它。这是一个尝试它,我需要显示一个消息访问被拒绝。

我该怎么做?

3 个答案:

答案 0 :(得分:6)

将此类请求路由到CakePHP

cakephp附带的default .htaccess file允许目录列表:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

这意味着,如果请求不是针对目录,而不是针对文件 - 请将其发送给CakePHP。

如果删除目录规则:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

然后只排除对磁盘上文件的请求,并且所有其他请求(包括dir列表的请求,例如url /css/)将被发送到CakePHP(除非您为其定义路由)它)生成标准的404响应。

答案 1 :(得分:1)

我们也可以使用htaccess文件

只需应用此条件

    Options -Indexes 

在其中

答案 2 :(得分:0)

如果要禁用目录浏览,则应使用Web服务器配置执行此操作,这将是实现您想要执行的操作的最有效方法。在Apache中,它将是这样的:

<Directory "/path/to/your/webroot/img">
    Options -Indexes
</Directory>

你也可以完全禁用mod_autoindex。