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

Nginx自定义301重定向配置求助:根路径跳转至带en_us前缀的路径

Nginx自定义301重定向配置求助:根路径跳转至带en_us前缀的路径

嘿,我最近在配置Nginx的301重定向时卡壳了,想请大家帮忙看看:我需要把所有访问https://mydomain/xxx(xxx是任意动态路径)的请求,都永久重定向到https://mydomain/en_us/xxx——简单说就是在域名和后面的动态路径之间加上en_us这个前缀。

我自己试着写了一段配置,但完全没效果:

location /
{
rewrite ^(/.*)/ $1/en_us/$ last;
}

有没有懂Nginx配置的朋友能指点一下,正确的写法应该是什么样的?


解决方案

你之前的rewrite规则正则匹配逻辑有问题,导致没法正确捕获路径并添加前缀。这里给你两种可行的配置方案,按需选择:

方案一:分场景精准匹配(推荐,性能更优)

# 精准匹配根路径,直接跳转到带en_us的根路径
location = / {
    return 301 $scheme://$host/en_us/;
}

# 匹配所有非en_us开头的路径,添加前缀后重定向
location ~ ^/(?!en_us/)(.*) {
    return 301 $scheme://$host/en_us/$1;
}
  • 用$scheme和$host代替硬编码的域名和协议,适配http/https,也不用修改域名时改配置;
  • 负向预查(?!en_us/)确保已经是en_us前缀的路径不会被重复重定向,避免死循环。

方案二:单条rewrite规则搞定

rewrite ^/(?!en_us)(.*)$ /en_us/$1 permanent;
  • permanent表示这是301永久重定向,搜索引擎会更新索引;
  • 同样用负向预查避免重复重定向问题,一条规则覆盖所有路径场景。

另外要注意:修改完配置后,记得执行nginx -s reload让配置生效哦!

备注:内容来源于stack exchange,提问作者G. G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 14:37:49