如何在nginx域名后添加语言代码
我想在URL上添加如何在nginx域名后添加语言代码,nginx,url-rewriting,magento2.2,Nginx,Url Rewriting,Magento2.2,我想在URL上添加en us语言代码。期望如下 当用户点击时,页面应该将用户重定向到 注意:我通过以下代码实现了这一点 location = / { rewrite ^ /en-us/ redirect; } 如何将客户重定向到以下场景 ,应重定向到 ,它不应该在url中附加额外的en us ,它不应该在url中附加en-us 简单地说,我想要实现的是,如果url中没有en-us,那么我们应该在XX-XX位置添加en-us 您可以通过使用负前瞻正则表达式(?!)来匹配不以所
en us
语言代码。期望如下
当用户点击时,页面应该将用户重定向到
注意:我通过以下代码实现了这一点
location = / {
rewrite ^ /en-us/ redirect;
}
如何将客户重定向到以下场景
- ,应重定向到
- ,它不应该在url中附加额外的en us
- ,它不应该在url中附加en-us
en-us
,那么我们应该在XX-XX位置添加en-us
您可以通过使用负前瞻正则表达式(?!
)来匹配不以所需路径开头的位置
或者使用if
块:
if ($request_uri !~ "^/en-(us|in)/")
{
return 301 /en-us/$request_uri;
}
你看过报纸了吗?这里有许多类似的例子
这是我愿意做的(未经测试)
嗨,谢谢你的回答,效果很好。我又添加了1个场景(第3点)。有可能限制url附加吗?是的,让正则表达式也包含在其中。谢谢,它按预期工作。但还有一个问题,我不想在js和css URL中附加这种语言代码。结果是,页面未正确呈现。我希望这个重定向只适用于网站URL,而不是静态文件。如果我们有这样的选择,那就太好了。你可以和静态资产匹配,并且有一个空块
# Paths that don't start with /en-us/ are redirected:
location ~ ^(?!/en-(us|in)/) {
rewrite ^/(.*)$ /en-us/$1 redirect;
}
if ($request_uri !~ "^/en-(us|in)/")
{
return 301 /en-us/$request_uri;
}
# Do not redirect /
location = / {
}
# Redirect everything else to /en-us/...
location / {
rewrite ^/(.*)$ /en-us/$1 redirect;
}