Cakephp 当有人试图通过浏览器定位文件夹时,将其设置为“拒绝访问”

Cakephp 当有人试图通过浏览器定位文件夹时,将其设置为“拒绝访问”,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,在cakephp网站中,当有人试图通过浏览器定位文件夹时,如何将其设置为拒绝访问 示例:默认情况下,尝试键入www.Example.com/img的用户将列出我的cakephp网站中的所有图像和目录。我想限制它。这是一个尝试它,我需要显示一个消息访问被拒绝 如何执行此操作?如果要禁用目录浏览,应使用web服务器配置执行此操作,这将是实现所需操作的最有效方法。在Apache中,它是这样的: <Directory "/path/to/your/webroot/img"> Opti

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

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


如何执行此操作?

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

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

选项-索引
您还可以完全禁用mod_autoindex。

将此类请求路由到CakePHP cakephp附带的允许目录列表:

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

重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$index.php[QSA,L]
这意味着,如果请求不是针对目录,也不是针对文件,请将其发送到CakePHP

如果删除目录规则:

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

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$index.php[QSA,L]

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

我们也可以使用htaccess文件

只要应用这个条件

    Options -Indexes 

这不是cakephp的工作,而是apache(或您的web服务器),请参见:stackoverflow.com/questions/11136913/