将所有禁止的Apache 2.2 403重定向到404未找到

问题描述 投票:3回答:2

我需要重定向Apache 2.2服务器上所有将403赋予404的目录的请求。

Ex:

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

环顾四周,我遇到了这篇文章:

Problem redirecting 403 Forbidden to 404 Not Found

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

/include 404 (instead of 403)
/include/ 404
/include/config.inc 404 (instead of 403)

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

RedirectMatch 404 ^[\/[\w+]]+\/$

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

apache .htaccess http-status-code-404 http-status-code-403
2个回答
11
投票

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

ErrorDocument 403 /404.php

然后在/404.php中可以添加此行以将404状态返回给客户端:

<?php
# your custom 404 content goes here

# now make it return 404 status to browser
http_response_code(404);
?>

要返回对目录的所有请求的404,您可以执行:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ - [L,R=404]

0
投票

只要您的403错误文档在限制区域内,它就永远不会出现,它必须在拒绝访问区域之外。

© www.soinside.com 2019 - 2024. All rights reserved.