【问题标题】:Apache is not returning 404 error for non existing URLApache 没有为不存在的 URL 返回 404 错误
【发布时间】:2017-12-31 04:34:57
【问题描述】:

这就是我想要的

如果有人输入了一个不存在的链接,那么它应该抛出 404 错误页面的 webhost,但目前它正在返回 200。

www.example.com/wrong_page.php --> 这应该抛出一个错误 404 但是 现在正在投掷 200。我看到了相同的页面 www.example.com/index.php

可能出了什么问题? htaccess.php 中是否需要进行任何配置?请帮忙

【问题讨论】:

  • “扔200”是什么意思? Http 状态 200 表示成功,当然,但通常这意味着你得到一个实际的回复,一些有效载荷。那么你得到了什么
  • 您应该检查您的 http 服务器访问和错误日​​志文件以获取更多信息。发布您的配置的相关部分也是有意义的。
  • 是的,它显示成功页面。我也看到同样的 www.example.com/index.php 页面 www.example.com/wrong.php
  • 您有一些有效的重定向规则,仅此而已。请开始阅读您使用的工具的文档并阅读一些“入门教程”。这不是火箭科学,但你需要学习一些东西才能开始。
  • @Hitesh 当然,照你说的做了。

标签: php apache .htaccess error-handling http-status-code-404


【解决方案1】:

很可能您有一些已经存在的重写规则生效,仅此而已。

将所有请求重定向到 /index.php 的东西,这实际上在 Web 应用程序中很常见。此类索引脚本充当路由器,处理所有请求。这用作中心入口点,并简化了定义已实现引擎的结构。

因此,您应该在 http 服务器主机配置或某些动态配置文件(“.htaccess”)中查找已经存在的内部重写规则。

【讨论】:

    【解决方案2】:

    让php发送header 404:(in wrong.php)

    <?php
    header("HTTP/1.0 404 Not Found");
    ?>
    

    重新阅读您的问题:error_page.php 是您的错误页面,还是您的非现有页面示例?

    如果是这样:您的网站上是否有自定义错误页面?然后将此标题放在该文件中

    编辑:(问题已更改)

    所以 index.php 仍在加载中。 是不是没见过404模板?

    【讨论】:

    • 多么好的建议。无需任何尝试找出实际发生的情况,您只需告诉 OP 覆盖症状。 摇头...
    • 当将问题阅读为“404 模板页面 wrong_page.php 正在返回 200”时,我认为答案是有道理的。但自从编辑了这个问题,很明显这不是 TS 的意思
    【解决方案3】:

    也许在那个位置确实存在一些页面。否则永远不会这样

    【讨论】:

      猜你喜欢
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      相关资源
      最近更新 更多