将所有Apache 2.2 403禁止重定向到404 Not Found

Tui*_*noe 3 apache .htaccess http-status-code-403 http-status-code-404

我需要将Apache 2.2服务器上的所有请求重定向到任何未找到404的目录.

例如:

  • /xyz或者/xyz/抛出403 - >重定向到404
  • /xyz/sometext.txt 正常返回.

环顾四周,我发现了这篇文章:

问题重定向403禁止404找不到

RedirectMatch 404 ^/include(/?|/.*)$

/include 404 (instead of 403)
/include/ 404
/include/config.inc 404 (instead of 403)
Run Code Online (Sandbox Code Playgroud)

但是,最后一种情况也返回404.此外,它只影响/ include /目录,我正在寻找更多的任何禁止目录.到目前为止,我有:

RedirectMatch 404 ^[\/[\w+]]+\/$
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何实现这一目标?谢谢,

anu*_*ava 11

要返回404 not found今天导致403的任何请求,您可以执行以下操作:

ErrorDocument 403 /404.php
Run Code Online (Sandbox Code Playgroud)

然后在/404.php您可以添加此行以向客户返回404状态:

<?php
# your custom 404 content goes here

# now make it return 404 status to browser
http_response_code(404);
?>
Run Code Online (Sandbox Code Playgroud)

要为目录返回404,您可以执行以下操作:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ - [L,R=404]
Run Code Online (Sandbox Code Playgroud)

  • 它回答了你的问题,即**`将所有Apache 2.2 403禁止重定向到404 Not Found`**.毫无疑问,防御攻击等.攻击者如何通过查看返回status = 404的响应头并呈现自定义404文档的内容来了解​​差异.如果您进一步澄清这个404/403处理的确切行为,我可以尝试解决这个问题. (3认同)