【问题标题】:apache: redirecting to 403 instead of 404 for hidden directoriesapache:隐藏目录重定向到 403 而不是 404
【发布时间】:2021-03-14 05:37:19
【问题描述】:

出于安全原因,您应该为隐藏目录抛出“404”,但 apache 会抛出 403 错误代码。我还检查了关于堆栈溢出的几个答案,建议在 403 错误代码上显示 404 页面,但这是不正确的,因为我们仍然在 Network 中看到 403 错误代码。我想显示“找不到隐藏目录的 404 页面”。有什么方法可以实现我的场景吗?我可以手动重定向所有隐藏目录,但只有 404 错误代码。

我可以编写目录访问或任何可以工作的东西吗?

在图片中,我试图解释我希望服务器响应 404 而不是 403 错误代码。

【问题讨论】:

  • 我很确定 403 来自您的 PHP 应用程序。服务器为请求的路径返回 301。新位置上的应用生成 403 响应
  • @Thakkie,是的,这正在发生。但不知道如何才能得到 404 而不是 403。
  • 您应该在您的应用程序中找到生成 403 的代码并更改它。这是我能在这里提供的最好帮助,而无需任何关于您的应用细节的信息
  • @Thakkie,我们可以从服务器配置中阻止路径吗?

标签: apache http security error-code


【解决方案1】:

完成此操作的最佳方法是更改​​生成 403 的应用程序。

如果您无法或不愿意更改代码,您可以使用 .htacces 将内部重定向到不存在的位置。下一行会将所有对归档目录的请求重定向到一个不存在的位置。

RewriteRule  ^archive(/.*)?$ /this-path-does-not-exist [L]

您还必须为重定向到您的前端控制器添加一个 RewriteCondition,以防止它被重定向到您的应用程序。

RewriteCond %{REQUEST_URI} !^/this-path-does-not-exist
# ... Other rewrite conditions
# The redirect to your front controller

【讨论】:

    【解决方案2】:

    我已经尝试了足够多的事情,例如 RewriteCond %{REQUEST_URI} !^/this-path-does-not-exist

    但这对我不起作用... 后来,我尝试了下面的代码,这对我有用。

    重定向 404 /Directory_Name

    感谢您的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      • 2014-05-11
      • 1970-01-01
      • 2018-05-12
      • 2014-06-17
      相关资源
      最近更新 更多