【问题标题】:404 custom error page redirect doesn't show missing file URL404 自定义错误页面重定向不显示丢失的文件 URL
【发布时间】:2011-11-17 14:44:12
【问题描述】:

我的网站上有一个自定义的 404 错误页面,但在网站上执行其他操作时,该错误页面很难弄清楚我的丢失文件问题是什么,因为它重定向到给定的 html 或 php 文件并占用地址栏中丢失文件的 URL 并将其替换为自定义错误页面的 URL。

因此,例如,当用户登录网站时,我在点击提交时将其链接到一个 php 文件,但随后浏览器将他们直接带到 404 错误页面,所以我看不到问题所在实际上是指向比应有的更高目录的链接。

我尝试使用 php 将丢失文件的 URL 打印到页面,但服务器只是抓取 404 错误页面的 URL,而不是原始的丢失文件 URL。这是我尝试这样做的方法:http://members.cox.net/midian/tutorials/php404.htm

如何在地址栏中保留原始丢失 URL 的同时显示自定义错误页面,或将丢失文件的 URL 打印到页面?

【问题讨论】:

    标签: php url redirect http-status-code-404 custom-error-pages


    【解决方案1】:

    Salman A 发布的内容对我有用。

    只有当我在 .htaccess 文件中使用相对路径时它才有效:

    ErrorDocument 404 /error-404.php
    

    不是 ErrorDocument 404 http://www.mydomain.com/error-404.php

    第二个版本在地址栏和页面正文中给了我重定向的 url。

    另外,您的 404 消息不需要使用 php 页面;如果您不想在页面正文中回显 URL,则 html 页面也可以使用。

    【讨论】:

      【解决方案2】:

      如果您的错误页面被重定向到 PHP 驱动的 404 页面,那么变量 $_SERVER["HTTP_REFERER"] 应该包含一些有趣的东西。话虽如此,重定向到错误 404 页面是一种不好的做法。它让搜索引擎和人类访问者都感到困惑。

      编辑

      这是一个适用于 Apache 的解决方案。将此行添加到您的 .htaccess 文件中:

      ErrorDocument 404 /error-404.php
      

      在您网站的根目录中创建一个名为error-404.php 的文件,内容如下:

      <?php
      echo "<h1>404 Not Found</h1>";
      echo "<p>The page {$_SERVER['REQUEST_URI']} was not found on this server</p>";
      

      【讨论】:

      • 我不想重定向,这是我唯一能在网上找到的东西。有谁知道如何在不重定向的情况下显示自定义错误页面? (如果我在帖子中不清楚,这是我最初的问题)。我尝试回显 $_SERVER["HTTP_REFERER"],但没有打印出来,所以我一定是做错了。
      • 如果是apache服务器,可以通过.htaccesss/httpd.conf文件定义自定义404页面。您的托管公司可能还会提供一个界面,用于为 404 错误配置自定义页面。让我知道这是否可行。
      • 这是我在发布问题之前尝试过的。我在 .htaccess 中定义了自定义错误页面。它部分有效:它将重定向并打印出页面,但问题是它每次都会打印出:“在此服务器上找不到页面/404.php”
      猜你喜欢
      • 2018-02-03
      • 2019-09-14
      • 1970-01-01
      • 2015-08-01
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      相关资源
      最近更新 更多