首页 > 解决方案 > 将 404 文档转换为“路由”脚本 - 如何设置 HTTP 代码?

问题描述

我正在考虑将我的 404 文档转换为“路由”脚本。这是因为我对 PHP 比 mod_rewrite 更有信心(而且我很确定我的主机使用的 Apache 版本远非标准),然后我可以使用 404 文档中的 PHP 代码处理 404 请求.

如果我重定向到正确的页面,这会令人满意。

但是,如果我尝试显示 404 文档中的一些内容,并且至关重要的是,将 HTTP 状态代码从 404 更改回 200,它就不起作用了。状态码始终以 404 发送。即使我使用 PHP 函数 http_response_code(200) 尝试设置它。

所以,我的问题是,有没有办法从 ErrorDocument 中设置响应代码?

标签: phphttp

解决方案


这并不是一个真正的直接答案,但这非常有效。这是一些你可以添加到根目录中的 .htaccess 的 mod_rewrite ,它会将所有请求发送到 .router.php 脚本:

RewriteEngine On
RewriteBase /
RewriteRule ^.+$ .router.php [L]

然后,您可以检查 $_SERVER['REQUEST_URI'] 变量以确定请求的内容并采取适当的行动。


推荐阅读