【发布时间】:2015-01-13 20:03:54
【问题描述】:
我是一名前端开发人员,对 htaccess、后端、框架和服务器配置了解不多。 我已经建立了一个原型网站(全部使用 HTML5、CSS、JS 和一个简单的 php 联系表完成)。所有页面都是 .php,因为我使用 php include 来管理网站上的快速更改。 但我的客户希望拥有 404 和 500 个自定义登录页面。
我已将 2 个错误页面的布局 (html/css) 代码放在一起,并进行了一些研究以了解如何触发它们。我创建了一个 .htaccess 文件。代码如下:
Options +Indexes
RemoveHandler .html
RemoveType .html
AddType text/html .html
Satisfy any
Order Deny,Allow
ErrorDocument 500 /500.php
ErrorDocument 404 /404.php
如果在我的 url 中输入 localhost:8888/anywrong-page-name,我会成功获得 404 登录页面。但是当我尝试触发 500 时,我得到的是标准的 500 页面,而不是我的自定义页面。
是否可以仅使用 .htaccess 来显示自定义 500 页面(就像我为 404 所做的那样)或者它是由服务器/后端中的 web_config 触发的?
我想知道在没有后端的情况下是否可能(以及如何)。
【问题讨论】:
-
你是如何产生 500 错误的?
-
如何“触发” 500 错误可能是这里最重要的部分。如果你通过在你的 .htaccess 文件中添加一些无效的东西来做到这一点——那么当然,那里的所有其他内容,包括你设置 ErrorDocument 500 的尝试,当然也会被忽略。
-
我在 index.php 文件的顶部添加了一行 php 代码: 。它确实触发了 500 页,但不是我的自定义页面
-
有人在这里提出了一个很好的观点:stackoverflow.com/a/12412722/1663306 .. 还有这个评论:我相信 ErrorDocument 500 只有在 apache 将请求交给 PHP 之前出现 500 错误时才会起作用。我可能错了。”