You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Joomla 4.2.5触发致命错误后重定向至旧站点?

回答:Joomla 4.2.5致命错误后重定向到旧站点的实现方案

首先明确:可以实现重定向,但强烈不建议直接修改system/fatal.php核心文件——Joomla官方升级会覆盖核心文件,你的修改会在下次更新后丢失,而且核心文件修改可能引发不可预见的兼容性问题。

官方其实已经提供了更安全的自定义致命错误处理机制,就是代码里提到的fatal-error.custom.php,具体步骤如下:

推荐方案:使用自定义致命错误文件(无升级覆盖风险)

  1. 在你的Joomla站点的templates/system/目录下,创建一个名为fatal-error.custom.php的文件。
  2. 在文件中写入重定向代码,示例如下:
<?php
defined('_JEXEC') or die;

// 发送503服务不可用状态码(对SEO更友好,也可改用302临时重定向)
header('HTTP/1.1 503 Service Unavailable');
header('Retry-After: 3600'); // 可选:告诉搜索引擎1小时后重试

// 重定向到你的旧站点URL
header('Location: https://你的旧站点域名.com');
exit;
  1. 保存文件即可。

为什么这个方案更稳妥?

  • 原代码中明确判断,如果fatal-error.custom.php存在,会优先加载它并执行return,完全跳过后续核心文件的逻辑,不会和原有代码冲突。
  • 自定义文件不会被Joomla升级覆盖,后续更新站点也能保留重定向逻辑。

临时方案:直接修改核心文件(不推荐)

如果你只是临时需要,一定要修改system/fatal.php,可以在你标注的位置添加重定向代码,但注意要在输出任何内容之前执行:

// Joomla supplied fatal error page
if (file_exists(__DIR__ . '/fatal-error.html')) {
    $template = file_get_contents(__DIR__ . '/fatal-error.html');

    // 添加重定向代码
    header('HTTP/1.1 503 Service Unavailable');
    header('Location: https://你的旧站点域名.com');
    exit;

}

但再次提醒:这个修改会在Joomla升级后被清除,不适合长期使用。

测试验证

你可以通过故意触发致命错误来测试,比如修改configuration.php中的数据库参数为错误值,访问站点时就会触发致命错误,此时应该会自动跳转到你的旧站点。

内容的提问来源于stack exchange,提问作者Robert Legault

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:20:42