当 PHP 认为合适时让 apache 处理 404 错误?

Posted

技术标签:

【中文标题】当 PHP 认为合适时让 apache 处理 404 错误?【英文标题】:Let apache handle 404 error when deemed appropriate by PHP? 【发布时间】:2010-12-02 19:59:47 【问题描述】:

我完全知道如何在 php 中创建自定义 404 页面,但是我想知道是否有办法将控制权交还给 apache 并让它生成正确的 404 页面、发送正确的标题等。这么说?

我正在查看some apache specific functions,但似乎找不到任何合适的东西。这真的不可能吗?我记得类似的东西,例如mod_perl 拥有对 apache 内部的完全访问权限,那么 PHP 中的等价物在哪里?

【问题讨论】:

【参考方案1】:

到目前为止,我的研究使我得出的结论是,不可能像其他一些技术一样从 mod_php 内部委托回 Apache,例如mod_perl,允许。

【讨论】:

【参考方案2】:

我不确定您是否可以完全按照自己的意愿去做,但是 php 可以满足您的其中一个要求,而且除了......我真的没有看到任何其他要求。

您可以使用 header() 函数发送正确类型的标头。在我的代码中,我通常使用下面的代码。

header("HTTP/1.0 404 Not Found"); echo "对不起,找不到页面...";

更多详情请参阅 php 手册中的function.header.php。

【讨论】:

我明白了,对不起。也许更多地澄清你为什么想让 apache 这样做,而不是使用你已经可以从 php 做的事情的例子可能会有所帮助? PHP 可以生成正确的 404 页面,因此您的请求会以这种方式产生混淆。希望我能提供更多帮助,但我不知道没有办法将逻辑返回给 apache 而不做一些愚蠢的事情,比如请求一个不由 php 处理的 url。 我想利用 Apaches 机制,它为 404 页面生成额外的标题,我必须手动添加,我不喜欢。似乎PHP根本不支持这种东西。

以上是关于当 PHP 认为合适时让 apache 处理 404 错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 PHP 8 设置合适的 Apache 版本

apache重启时让其自动输入ssl密码

PHP与apache版本配对

实时聊天、消息处理 - Socket.io、PHP、MySQL、Apache

apache 用哪个版本

Apache 不从 PHP 加载模块