![阻止 Apache 中的文件访问并且不显示其存在](https://linux22.com/image/641156/%E9%98%BB%E6%AD%A2%20Apache%20%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%E8%AE%BF%E9%97%AE%E5%B9%B6%E4%B8%94%E4%B8%8D%E6%98%BE%E7%A4%BA%E5%85%B6%E5%AD%98%E5%9C%A8.png)
我正在尝试阻止一些文件和文件夹在 apache 上直接访问。查看这里的一些答案后,我做了以下操作:
我补充说apache2.conf
:
<Location /folder1/folder2>
Order deny,allow
deny from all
</Location>
<FilesMatch /folder3/file1>
Order deny,allow
deny from all
</FilesMatch>
第一部分工作部分正确:当我从访问任何文件时http://xxxx/文件夹1/文件夹2/(文件或文件夹)我得到:
Forbidden
You don't have permission to access ... on this server.
但是当我访问类似的东西时:http://xxxx/nonExistingFolder/我得到了信息Not Found
,因此看起来我泄露了信息,即文件夹 1/文件夹 2/ 中存在某些内容,并且这些内容很重要。有没有办法显示未找到。
另一个问题是我仍然可以访问/folder3/file1
FilesMatch 中我做错了什么?我在 apache 上2.4.10
答案1
您可以在 /folder1 目录中使用 mod_rewrite
RewriteEngine On
RewriteBase /folder1
RewriteRule ^$ - [R=404,L]