禁用 404 而不是 403 目录列表

禁用 404 而不是 403 目录列表

我已禁用目录列表,像这样......

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”指令。

StackOverflow:将 403 Forbidden 重定向到 404 Not Found 时出现问题

答案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 来屏蔽错误。请参阅本指南:

http://www.tarahost.net/pages/web-design/29371.php

相关内容