![禁用 404 而不是 403 目录列表](https://linux22.com/image/541024/%E7%A6%81%E7%94%A8%20404%20%E8%80%8C%E4%B8%8D%E6%98%AF%20403%20%E7%9B%AE%E5%BD%95%E5%88%97%E8%A1%A8.png)
我已禁用目录列表,像这样......
Options -Indexes
当我尝试访问这样的目录时:-
www.example.com/secret/
我得到一个403 禁止回复。
不过,我想要一个404 未找到响应,这样黑客就无法轻易猜出我的目录结构。我该怎么做呢?
答案1
在 /secret 中启用 mod_rewrite 和 AllowOverride。然后创建 .htaccess:
RewriteEngine On
RewriteBase /secret
RewriteRule ^$ - [R=404,L]
答案2
我在网上搜索了类似问题的答案。虽然 mod_rewrite 是一个可行的解决方案,但我发现最好的解决方案是使用“RedirectMatch”指令。
答案3
创建一个自定义 403 脚本,返回 404 错误。
例如,在 PHP 中:
<?php
header("HTTP/1.0 404 Not Found");
die("<h1>404 Not Found</h1>");
?>
现在配置 Apache 以使用此脚本来处理 403 结果:
ErrorDocument 403 /403.php
无需重写,它可以立即为整个服务器工作。
答案4
使用 .htaccess 来屏蔽错误。请参阅本指南: