【发布时间】:2015-06-13 12:15:12
【问题描述】:
让我们了解一下场景:
:- 在 IIS 8.5 上将 PHP 用于 Web 应用程序
:- 为 404 设置了自定义错误页面,并带有以下 web-config 片段:
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/path/404.php" responseMode="ExecuteURL" />
</httpErrors>
:- 如果我在任何 PHP 页面中将标头设置为 404(通过header('HTTP/1.0 404 Not Found', true, 404); die;),这适用于不存在的页面和 IIS 也返回此 404.php。
问题:
现在,我想在任何特定条件下在某个 php 文件中发送 404 http 响应代码,假设数据库返回 0 行。我可以通过如上所述设置标题来做到这一点,但这也会返回自定义错误页面。 有没有办法发送 404 代码并告诉 IIS 按原样发送响应,而不发送自定义错误页面?
问题:
:- 如果我删除自定义错误页面并将内容放在header() 和die() 之间,那么它将满足我的要求,但 IIS 将无法在实际上不存在的页面上提供自定义错误。
:- 我正在使用 URL 重写,因此不能使用基于 location 标记的多个自定义错误页面,并且不想重定向到任何建议的不同 URL。
【问题讨论】:
标签: php iis custom-error-pages