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

Nginx子域名404时301重定向至主域名配置方法

实现子域名404时301重定向到主域名的方法

嘿,这个需求在Nginx里配置起来挺直接的,咱们只需要在subdomain.domain.com对应的Server Block里动手就行,不用改动主域名的配置。下面给你两种靠谱的实现方式,选一个适合你的就行:

方法一:用error_page快速配置

打开子域名的配置文件(通常路径是/etc/nginx/sites-available/subdomain.domain.com,如果是软链到sites-enabled目录的话直接编辑软链指向的文件也可以),在server块内部添加这一行:

error_page 404 =301 https://domain.com;

这里的=301是关键——它告诉Nginx遇到404状态时,直接返回301永久重定向到主域名,而不是默认的内部跳转逻辑。

方法二:用命名location实现灵活扩展

如果以后你可能需要调整重定向逻辑(比如要排除某些特定路径的404跳转),可以用命名location的方式,可读性和扩展性更好:

# 定义命名location,专门处理404后的重定向
error_page 404 @redirect_to_main;

location @redirect_to_main {
    return 301 https://domain.com;
    # 要是你想把用户原本请求的路径也带到主域名,可以改成下面这行:
    # return 301 https://domain.com$request_uri;
}

注释里的选项是可选的——比如用户访问subdomain.domain.com/xxx触发404时,你想让他跳转到domain.com/xxx,就用带$request_uri的那行配置。

最后一步:验证配置并重启Nginx

配置写完后,先检查Nginx配置有没有语法错误:

sudo nginx -t

如果输出显示test is successful,就可以重启Nginx让配置生效:

sudo systemctl restart nginx

这样设置后,用户访问子域名下不存在的资源触发404时,就会自动被301重定向到主域名啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:35:38