【问题标题】:Custom 500 page for PHP site on IIS7.5IIS7.5 上 PHP 站点的自定义 500 页面
【发布时间】:2017-06-25 19:37:21
【问题描述】:

我有一个在 Windows 2008 R2 服务器 (IIS7.5) 上运行的 PHP (5.3) 站点,我正在尝试显示一个自定义的 500 页面。

我已经设置了一个测试页面,它会生成一个致命错误 - 调用未定义的函数 functiondoesnotexist() in...

如果我将脚本中的错误处理设置为:

ini_set('display_errors', 1);
error_reporting(E_ALL);)

我确实在页面上看到了错误,但是页面返回了 200 代码。

如果我关闭错误报告,我只是得到一个空白页面(根本没有源代码),但状态是 500

但是,它不显示客户错误页面 (500.php) - 直接加载时可以正常工作。

有人知道我错过了什么吗?谢谢

【问题讨论】:

    标签: php error-handling iis-7.5 error-reporting wsod


    【解决方案1】:

    要在 IIS 下的 PHP 站点中将自定义静态文件显示为 500 错误,通过 IIS UI 配置自定义页面后,您需要编辑 web.config 文件并找到 httpErrors 部分。在此配置节点中,您必须将 existingResponse 属性设置为 "Replace",以便 fastCGI 使用默认的 IIS 响应而不是 PHP 使用的 fastCGI 响应。

    您的 web.config 文件部分应如下所示:

    <httpErrors existingResponse="Replace"> <remove statusCode="500" subStatusCode="-1" /> <error statusCode="500" prefixLanguageFilePath="" path="MyCustom500Errorpage.html" responseMode="File" /> </httpErrors>

    注意根节点中的属性和error 节点中设置为FileresponseMode 属性。

    该文件位于根文件夹中。如果您使用了任何图像、脚本或 .css 文件,请确保您使用的是与根文件夹相关的路径(例如:"/Images/MyLogo.png" 等...)。

    HTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-18
      • 1970-01-01
      • 2012-05-07
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 2023-03-14
      相关资源
      最近更新 更多