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

Nginx如何实现动态重定向缺失/en前缀的动态产品页URL

Nginx 动态补全/en前缀重定向配置方案

原有配置失效原因

  • 未加正则匹配标识:Nginx的location默认是前缀匹配,要启用正则匹配必须在路径前加~(区分大小写)或~*(不区分大小写)标识
  • 路径拼写错误:配置中的/produk/、/end/about/和实际业务路径/product/、/en/不匹配
  • 没有捕获动态路径参数:无法获取用户访问的产品后缀,不能动态生成目标地址

正确配置方案

方案一:rewrite全局规则(推荐,简洁高效)

直接在站点对应的server块中添加以下规则即可:

# 同站点重定向可以省略域名,适配性更强
rewrite ^/product/(.*)$ /en/product/$1 permanent;

# 跨站点或者需要固定域名的场景可以写完整地址
# rewrite ^/product/(.*)$ https://myweb.com/en/product/$1 permanent;

规则说明:

  • ^/product/(.*)$ 仅匹配路径开头为/product/的请求,(.*)会捕获/product/后的所有路径内容存入变量$1
  • permanent对应301永久重定向,测试阶段可以替换为redirect使用302临时重定向,避免浏览器缓存错误规则
  • 自动适配所有产品路径,无需逐个配置

方案二:location正则匹配(适合需要额外配置该路径规则的场景)

如果需要对/product/路径单独配置其他规则,可以用location块实现:

location ~ ^/product/(.*)$ {
    return 301 /en/product/$1;
}

注意:开头的~是正则匹配标识,不可省略。

配置生效步骤

  1. 执行nginx -t测试配置语法是否正确,返回test is successful再进行下一步
  2. 执行nginx -s reload重载Nginx配置使规则生效
  3. 测试建议使用浏览器无痕模式,避免旧的重定向缓存影响验证结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:54:03