gpt4 book ai didi

apache - 将 403 Forbidden 重定向到 404 Not Found 的问题

转载 作者:行者123 更新时间:2023-12-04 13:30:09 31 4
gpt4 key购买 nike

我的 .htaccess 的相关部分如下所示:

Options -Indexes
<FilesMatch include>
Order allow,deny
Deny from all
</FilesMatch>
RedirectMatch 404 ^/include(/.*)$

它正在生成以下响应:
  • /包括 403
  • /包括/404
  • /include/config.inc 403

  • 通过查看我的模式,我可以看出问题可能在 (/.*) 部分,但我尝试过的一切都给了我相同的结果;我没有一直得到 404,而是在一种情况下得到 404,对其他所有情况得到 403。 我使用的表达式有什么问题?或者,由于我必须对几个目录执行此操作,是否有一种全面的方法可以让我将所有 403 响应转换为 404?

    更新:我发现通过删除 FileMatch 可以获得更好的结果,所以我的 .htaccess 现在看起来像这样:
    Options -Indexes
    RedirectMatch 404 ^/include(/.*)?$ # Added dlamblin's first suggestion

    并生成以下响应:
  • /包括 404
  • /包括/404
  • /include/config.inc 403

  • 更新:有趣的是,我发现以下会产生不同的输出:
    RedirectMatch 404 ^/include(/?|/.*)$
    RedirectMatch 404 ^/template(/?|/.*)$

    模板模式适用于所有情况,但是包含仍然为包含中的所有文件生成 403(例如/include/config.inc) 这可能是目录名称的问题而不是 .htaccess 文件本身的问题吗?

    更新:在访问/include/config.inc 时,我的 .htaccess 中的以下内容与重定向冲突。
    <FilesMatch config>
    Order allow,deny
    Deny from all
    </FilesMatch>

    最佳答案

    我可以理解为什么/include 没有被您的 RedirectMatch 捕获,您没有将结尾 '/' 设为可选,但是/include/config.inc 部分有点令人费解。

    这是我在 Apache 2.2 上的工作:

    <FilesMatch /include(/?|/.*)>
    Order allow,deny
    Deny from all
    </FilesMatch>

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

    这处理这些情况:
    /include 404
    /include/ 404
    /include/config.inc 404

    我必须更改 FilesMatch 部分才能使/include 部分正常工作。

    编辑:

    匹配行也可以在 .htaccess 中没有 部分的情况下工作,并提供预期的结果。

    关于apache - 将 403 Forbidden 重定向到 404 Not Found 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/548156/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com