在 cakephp 网站中,当有人尝试通过浏览器定位文件夹时,如何将文件夹设置为拒绝访问。
示例:默认情况下,有人尝试键入 www.example.com/img 将列出我的 cakephp 网站中的所有图像和目录。我想限制它。这是一些尝试,因为我需要显示一条消息访问被拒绝。
我怎样才能做到这一点?
在 cakephp 网站中,当有人尝试通过浏览器定位文件夹时,如何将文件夹设置为拒绝访问。
示例:默认情况下,有人尝试键入 www.example.com/img 将列出我的 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 响应。
我们也可以使用htaccess文件
只需应用此条件
Options -Indexes
在里面
如果您想禁用目录浏览,您应该使用您的 Web 服务器配置来执行此操作,这将是实现您想要做的最有效的方式。在 Apache 中会是这样的:
<Directory "/path/to/your/webroot/img">
Options -Indexes
</Directory>
您也可以完全禁用 mod_autoindex。