在cakephp网站上,当有人尝试通过浏览器找到文件夹时,如何将文件夹设置为拒绝访问。
示例:默认情况下有人尝试输入www.example.com/img会列出我的cakephp网站上的所有图片和目录。我想限制它。这是一个尝试它,我需要显示一个消息访问被拒绝。
我该怎么做?
答案 0 :(得分:6)
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。