在cPanel中创建自定义PHP错误页面,而不将它们重定向到抛出错误的页面

在cPanel中创建自定义PHP错误页面,而不将它们重定向到抛出错误的页面,php,apache,.htaccess,cpanel,custom-error-pages,Php,Apache,.htaccess,Cpanel,Custom Error Pages,我试图使我的web服务器具有自定义的错误文档/页面,但中包含PHP代码,而不将它们重定向到抛出错误的页面 假设我们正在导航到http://website.com/pages/1然后抛出错误500,默认情况下,页面将是一个空白的白色页面,文本为“error 500(内部服务器错误)”,类似于: 从上面可以看到,它没有从抛出错误的页面重定向。我希望这个页面看起来是“网站的一部分”,但其中包含PHP内容 我无法通过编辑您在下面看到的页面,将PHP内容包含在cPanel中的错误页面中: 如果我要编辑

我试图使我的web服务器具有自定义的错误文档/页面,但中包含
PHP
代码,而不将它们重定向到抛出错误的页面

假设我们正在导航到
http://website.com/pages/1
然后抛出错误500,默认情况下,页面将是一个空白的白色页面,文本为“
error 500(内部服务器错误)
”,类似于:

从上面可以看到,它没有从抛出错误的页面重定向。我希望这个页面看起来是“网站的一部分”,但其中包含PHP内容

我无法通过编辑您在下面看到的页面,将PHP内容包含在cPanel中的错误页面中:

如果我要编辑上面的错误500页,而下面的内容是
http://website.com/pages/1
将重定向到
http://website.com/500.shtml
然后再重定向到
http://website.com/500.php

我不想让它重定向,否则这意味着刷新页面实际上只会刷新500.php页面,而不是刷新
/pages/1

<script language="javascript">
    window.location.href = "http://www.website.com/500.php"
</script>
<meta http-equiv="refresh" content="0;URL='http://website.com/500.php'" />  
当前结果:重定向到/500.php

预期结果:在不重定向的情况下显示500.php in/on

我怎样才能拥有包含php内容的自定义错误页面,而不使其重定向到抛出错误的页面?
是否有一种方法可以通过root来执行此操作(我是否可以让我的主机执行某些操作,如果是,又是什么?

如果在.htaccess文件中添加类似的内容,它应该只显示错误页面而不重定向。我从来没有像你在错误页面示例中那样使用过绝对路径,所以我不确定它会导致什么样的行为

ErrorDocument 404 /404.php 

正如其他人回答的那样,这应该是可行的:

ErrorDocument 500 /500.php
如果您没有指定完整的URL,它只会显示页面(内部重定向),如果您指定了完整的URL,那么它会将重定向发送回客户端。这正如Apache在这里所描述的:

请注意,当您指定指向远程文件的ErrorDocument时 URL(即前面有http等方法的任何内容),Apache HTTP服务器将向客户端发送一个重定向,告诉它到哪里 查找文档,即使文档最终位于同一位置 服务器

上述情况不适用于您,这意味着以下几点之一:

  • 您这样做是错误的,即使您声称没有指定完整的URL,但仍然指定了完整的URL
  • Cpanel正在添加完整的URL(不确定如何编辑.htaccess文件或是否通过上面的GUI完成)
  • 您的.htaccess文件正在被忽略(可能是因为您正在GUI中设置值,或者可能是因为FileInfo未在服务器级别设置,因此无法在.htaccess文件中指定该文件(请参见此处:),在这种情况下,它必须从其他配置的某处获取完整的URL本身
  • php脚本本身正在进行重定向(如果保留日志并查看是返回一个页面还是两个页面,那么开发人员工具应该很明显)
  • Apache中有一个bug(我和其他人都不知道)
  • 魔力
  • 你能看看那些东西吗

    可能也有助于了解您使用的是什么版本的Apache


    另外,您是否尝试过一个普通的500.html文件,只是为了看看它是否可以在不重定向的情况下工作?理论上,一个500.php文件也应该可以,但缩小范围会很有趣(还将显示对500.html的更改是否被拾取并使用,或者它是否仍然指向500.php,这可能会显示这是从其他配置中拾取的,而不是您认为的).

    ErrorDocument 500/500.php
    重定向到
    website.com/500.php
    @Kuya您打算如何使用错误处理程序来处理内部服务器错误,如果发生内部服务器错误,错误处理程序甚至不会总是被正确调用。我已经说过了,但我要再说一遍,生成完整的页面而不是sim卡使用htaccess的ply是foolish@Kuya你不会从一篇文章中挑出一些东西来回答这些部分,你会回答一个问题,这个问题用粗体字写,并且在结尾处有一个问号:我怎样才能拥有带有php内容的自定义错误页面,而不使它从抛出错误的页面重定向出去呢?我的文章显然是关于重定向错误页面的d防止重定向
    ErrorDocument 500 /500.php