0

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

示例:默认情况下,有人尝试键入 www.example.com/img 将列出我的 cakephp 网站中的所有图像和目录。我想限制它。这是一些尝试,因为我需要显示一条消息访问被拒绝。

我怎样才能做到这一点?

4

3 回答 3

6

将此类请求路由到 CakePHP

cakephp 附带的默认 .htaccess 文件允许目录列表:

<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>

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

于 2013-06-17T08:15:09.003 回答
1

我们也可以使用htaccess文件

只需应用此条件

    Options -Indexes 

在里面

于 2013-12-12T13:04:50.050 回答
0

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

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

您也可以完全禁用 mod_autoindex。

于 2013-05-24T13:37:05.940 回答