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

如何配置不同站点对应404、500错误页面的动态跳转规则

实现多站点动态匹配专属错误页的方案

适用Apache服务器的配置方案

你给出的配置样例为Apache服务的语法,可根据站点数量和部署规则选择以下两种方案:

方案1:各站点虚拟主机独立配置(兼容性最好,无额外模块依赖)

站点数量较少时,直接在每个站点的<VirtualHost>块内单独定义错误页规则即可:

# IN站点虚拟主机配置
<VirtualHost *:80>
  ServerName in.yourdomain.com
  Define error_doc /IN/page-not-found.html
  ErrorDocument 404 ${error_doc}
  ErrorDocument 500 ${error_doc}
  # 其余站点常规配置省略
</VirtualHost>

# OUT站点虚拟主机配置
<VirtualHost *:80>
  ServerName out.yourdomain.com
  Define error_doc /OUT/page-not-found.html
  ErrorDocument 404 ${error_doc}
  ErrorDocument 500 ${error_doc}
  # 其余站点常规配置省略
</VirtualHost>

方案2:全局动态匹配规则(适合站点数量多、规则统一的场景)

如果所有站点都通过统一路径前缀(如/IN/、/OUT/)或域名区分,可通过全局规则自动匹配,无需逐个配置虚拟主机:

# 开启重写模块
RewriteEngine On
# 捕获请求路径的首段作为站点标识,写入环境变量
RewriteRule ^/([^/]+)/ - [E=SITE_NAME:$1]
# 动态引用变量生成错误页路径,404、500等错误码可分别配置
ErrorDocument 404 /%{ENV:SITE_NAME}/page-not-found.html
ErrorDocument 500 /%{ENV:SITE_NAME}/server-error.html
  • 如果站点是按域名区分,可直接用内置变量%{HTTP_HOST}替代自定义的站点变量,无需额外重写规则
  • 注意:需确保Apache已加载mod_rewrite模块,且对应路径下存在错误页文件,避免触发二次404

适用Nginx服务器的配置方案

Nginx场景下可通过内置变量捕获站点标识实现动态匹配,参考配置如下:

# 捕获请求路径首段作为站点标识
set $site_name "default";
if ($request_uri ~ ^/([^/]+)/) {
  set $site_name $1;
}
# 定义错误页跳转规则
error_page 404 /$site_name/page-not-found.html;
error_page 500 502 503 504 /$site_name/server-error.html;

按域名区分站点的场景下,直接替换为$host内置变量即可。

内容的提问来源于stack exchange,提问作者ck-s

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:09:02