【问题标题】:How do get the URL of a Not Found page, in order to display it in a custom 404 page?如何获取 Not Found 页面的 URL,以便在自定义 404 页面中显示它?
【发布时间】:2013-01-17 03:01:08
【问题描述】:

好的,当我尝试使用时,我的网络服务器出现问题

<?php echo "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]" ?>

它会显示它自己的文件: 例如。 blah.com/404.php

另外,我将如何处理 403 页面? 我知道这是可能的,我已经尝试过

    $_SERVER['HTTP_REFERER']

但注意到出现了,或者有时它只是一个零。 这是我第一次遇到 404,我做错了什么?

【问题讨论】:

  • 那么,您是在重定向到 404/403 页面吗?你是直接在浏览器中加载的吗?
  • 状态码页面由网络服务器处理,而不是 PHP
  • 您有问题,我们知道。但是你要做什么?!我们猜不透!给我们更多信息。
  • $_SERVER['HTTP_REFERER'] 在浏览器中直接访问网址时始终为空。
  • 抱歉,回复延迟,我使用错误链接来测试页面,但未显示 URI,它要么丢失,要么为“0”。

标签: php html http-status-code-404 http-status-code-403


【解决方案1】:

“未找到”的 url 应返回 404 状态代码。因此,您应该立即“返回”这段代码,而不是重定向到另一个 php 文件。

您应该查看.htaccess 文件中的错误文档处理。这样的事情可能会对您有所帮助:

ErrorDocument 404 /notfound.php

这将返回 404 状态代码。这个解决方案的好处是:您可以在 notfound.php 文件中访问 $_SERVER['REQUEST_URI'] 并使用它来显示错误消息或任何其他操作。

【讨论】:

  • 您是直接访问您的页面还是使用其他链接到达那里?
  • 我使用了另一个随机输入的字母并将我重定向到 404.php 但它没有说明我输入的 url 是什么,如果它是来自 html 的链接也没有说明。
  • 您确定这是使用ErrorDocument ... 时的重定向吗?当我输入一个随机 url 时,它只返回我的 404.php 的内容。 url 仍然相同,因此 $_SERVER['REQUEST_URI'] 包含当前(未找到)url。
【解决方案2】:

我发现了问题,您必须发布相对路径,而不是直接链接,否则它将重定向到该页面而不是显示 404。

例如:

 ErrorDocument 404 /404.php

这样 .htacess 不会重定向到 Yoursite.com/notfound.php 它还会发送 404(未找到)而不是 200(确定)

【讨论】:

    猜你喜欢
    • 2014-01-26
    • 2019-12-16
    • 2018-12-03
    • 2021-03-07
    • 2011-01-01
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 2017-09-23
    相关资源
    最近更新 更多