相关疑难解决方法(0)

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

我的.htaccess的相关部分看起来像这样:

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

它产生了以下响应:

  • /包括403
  • / include/404
  • /include/config.inc 403

我可以通过查看我的模式来判断问题可能出现在(/.*)部分,但我尝试的所有内容都给出了相同的结果; 而不是一直得到404我得到一个404的404和其他一切的403.我正在使用的表达式有什么问题?或者,因为我必须为几个目录执行此操作,是否有一种全面的方法可以将所有403响应转换为404?

更新:我发现通过删除FileMatch我得到了更好的结果,所以我的.htaccess现在看起来像这样:

Options -Indexes
RedirectMatch 404 ^/include(/.*)?$ # Added dlamblin's first suggestion
Run Code Online (Sandbox Code Playgroud)

并生成以下响应:

  • /包括404
  • / include/404
  • /include/config.inc 403

更新:有趣的是,我发现以下产生不同的输出:

RedirectMatch 404 ^/include(/?|/.*)$
RedirectMatch 404 ^/template(/?|/.*)$
Run Code Online (Sandbox Code Playgroud)

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

更新:访问/include/config.inc时,我的.htaccess中的以下内容与重定向冲突.

<FilesMatch config>
    Order allow,deny
    Deny from all
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

apache .htaccess mod-rewrite http-status-code-403 http-status-code-404

6
推荐指数
1
解决办法
3万
查看次数