Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 404自定义错误页面重定向不';不显示缺少的文件URL_Php_Url_Redirect_Http Status Code 404_Custom Error Pages - Fatal编程技术网

Php 404自定义错误页面重定向不';不显示缺少的文件URL

Php 404自定义错误页面重定向不';不显示缺少的文件URL,php,url,redirect,http-status-code-404,custom-error-pages,Php,Url,Redirect,Http Status Code 404,Custom Error Pages,我在我的网站上有一个自定义的404错误页面,但是当在网站上做其他事情时,错误页面很难找出我丢失的文件的问题是什么,因为它重定向到给定的html或php文件,并从地址栏中取出丢失文件的URL,并用自定义错误页面的URL替换它 例如,当用户登录到该站点时,当他们点击submit时,我让它链接到一个php文件,但是浏览器会直接将他们带到404错误页面,所以我看不出问题实际上是链接到一个比应该高的目录 我曾尝试使用php将丢失文件的URL打印到页面上,但服务器只是获取404错误页面的URL,而不是原始的

我在我的网站上有一个自定义的404错误页面,但是当在网站上做其他事情时,错误页面很难找出我丢失的文件的问题是什么,因为它重定向到给定的html或php文件,并从地址栏中取出丢失文件的URL,并用自定义错误页面的URL替换它

例如,当用户登录到该站点时,当他们点击submit时,我让它链接到一个php文件,但是浏览器会直接将他们带到404错误页面,所以我看不出问题实际上是链接到一个比应该高的目录

我曾尝试使用php将丢失文件的URL打印到页面上,但服务器只是获取404错误页面的URL,而不是原始的丢失文件URL。下面是我如何尝试这样做的:

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

如果错误页面被重定向到PHP支持的404页面,那么变量
$\u SERVER[“HTTP\u 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>";

Salman A发布的内容对我来说很有用

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

ErrorDocument 404 /error-404.php
错误文档404http://www.mydomain.com/error-404.php

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


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

我不想重定向,这只是我在网上唯一能找到的东西。有人知道如何在不重定向的情况下显示自定义错误页吗?(如果我在帖子中说得不清楚,这是我最初的问题)。我尝试回显$\u服务器[“HTTP\u REFERER”],但没有打印任何内容,因此我一定是做错了。如果它是apache服务器,您可以通过
.htaccess
/
httpd.conf
文件定义自定义404页面。您的托管公司还可能提供一个接口,用于为404错误配置自定义页面。让我知道这是否可行。这是我在发布问题之前尝试过的。我在.htaccess中定义了自定义错误页。它部分有效:它将重定向并打印页面,但问题是每次都会打印:“此服务器上找不到页面/404.php”