将域重定向到默认语言NGINX

时间:2020-02-26 12:58:23

标签: regex nginx url-rewriting

经过长达301年的奋斗,site.com重定向到site.com/ensite.com/my-page重定向到site.com/en/my-page

我设法使第一个重定向起作用,但没有使第二个重定向起作用!也可能只使用一条规则吗?那么我的第二条规则怎么了?

rewrite "^/(?![a-z]{2}|[a-z]{2}-[a-z]{2})$" /en redirect;
rewrite "^/(?![a-z]{2}|[a-z]{2}-[a-z]{2})/(.*)$" /en/$2 redirect;

非常感谢。

2 个答案:

答案 0 :(得分:0)

第二个正则表达式中没有2个捕获组,只有一个。第一对括号中有一个负前瞻,它不会创建捕获组。这就是为什么您不能在重定向中使用$ 2的原因。

已更新

此重定向应替换您的两条规则:

pip install git+...

答案 1 :(得分:0)

我认为您可以通过定义相关位置来从另一个角度进行研究,例如:

location / {
    return 301 /en$request_uri;
}

location = /my-page {
    return 301 /en/my-page;
}

location /en/ {
   ...
}