【发布时间】:2015-12-12 12:45:11
【问题描述】:
我正在尝试让我的网络服务器自定义错误文档/页面,但带有 PHP 代码包含在其中,而不会将它们从引发错误的页面重定向。
假设我们正在导航到http://website.com/pages/1,它会抛出错误 500,默认该页面将只是一个带有文本“Error 500 (Internal Server Error)" 看起来像:
从上面可以看出,它并没有从引发错误的页面重定向。我希望这个页面看起来是“网站的一部分”,但其中包含 PHP 内容。
我无法通过编辑您在下面看到的页面在 cPanel 中的错误页面中包含 PHP 内容:
如果我要编辑上面的错误 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'" />
同样会存在同样的问题,只是没有 2 个链重定向,而是使用 .htaccess 文件中的以下内容进行 1 个重定向
ErrorDocument 400 http://website.com/400.php
ErrorDocument 401 http://website.com/401.php
ErrorDocument 403 http://website.com/403.php
ErrorDocument 404 http://website.com/404.php
ErrorDocument 500 http://website.com/500.php
当前结果:重定向到 /500.php
预期结果:在http://website.com/pages/1 中/上显示 500.php 而没有重定向
我怎样才能拥有包含 php 内容的自定义错误页面,而不使其从引发错误的页面重定向?
有没有办法通过 root 来做(我可以让我的主机做点什么,如果可以的话怎么办?)
【问题讨论】:
-
@Kuya 您甚至打算如何为内部服务器错误使用错误处理程序,如果发生内部服务器错误,错误处理程序甚至并不总是被正确调用。我已经说过了,但我再说一遍,生成一个完整的页面而不是简单地使用 htaccess 是愚蠢的
-
@Kuya 您不会从帖子中挑选一些内容并回答这些部分,而是回答以粗体显示并在其末尾带有问号的问题:如何我可以在不使其重定向到引发错误的页面的情况下使用带有 php 内容的自定义错误页面吗?。我的帖子很清楚关于重定向和防止重定向
标签: php apache .htaccess cpanel custom-error-pages