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

.NET 6中如何将无语言码URL重定向到带语言码URL?

解决方案

你需要使用负向前瞻断言来排除已带有语言前缀的URL,仅匹配无语言前缀的/product/{permalink}格式路径,对应的正则表达式和完整代码如下:

正确的重定向规则

var rewriteOptions = new RewriteOptions()
    // 匹配无语言前缀的/product/开头URL,重定向到/en/product/路径
    .AddRedirect(@"^(?!/(de|fr|es)/)product/(.*)", @"en/product/$2", statusCode: 301);

app.UseRewriter(rewriteOptions);

正则表达式说明

  • ^(?!/(de|fr|es)/):负向前瞻断言,确保URL开头不是/de/、/fr/或/es/这类语言前缀路径
  • product/(.*):匹配/product/后的所有内容(即你的{permalink}部分),并将其捕获为分组$2
  • 重定向目标en/product/$2:把捕获到的{permalink}拼接到/en/product/后,完成路径转换

补充说明

  • 用301永久重定向更利于SEO需求,若需临时重定向可改为302
  • C#里的@是逐字字符串标记,避免斜杠等特殊字符的转义问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 03:15:35