如何在nginx上添加域名后的语言代码

时间:2018-04-30 04:37:36

标签: nginx url-rewriting magento2.2

我想在网址上添加en-us语言代码。期望如下。

当用户点击http://example.com/时,页面应将用户重定向到http://example.com/en-us/ 注意:我已使用以下代码实现此目的。

location = / {
      rewrite ^ /en-us/ redirect;
  }

如何将客户重定向到以下方案

简单地说,我想要实现的是如果url中没有en-us,那么我们应该在XX-XX位置添加en-us。 http://example.com/XX-XX/contact

2 个答案:

答案 0 :(得分:1)

# Do nothing for assets (paths with a dot)

location ~ \. {
}

您可以使用否定前瞻性正则表达式(?!)匹配不以所需路径开头的位置

# Paths that don't start  with /en-us/ are redirected:

location ~ ^(?!/en-(us|in)/) {
    rewrite ^/(.*)$ /en-us/$1 redirect;
}

或使用if块:

if ($request_uri !~ "^/en-(us|in)/")
{
    return 301 /en-us/$request_uri;
}

答案 1 :(得分:0)

你读过rewrite documentation了吗?那里有很多类似的例子。

这是我做的(未经测试)。

# Do not redirect /
location = / {
}

# Redirect everything else to /en-us/...
location / {
    rewrite ^/(.*)$ /en-us/$1 redirect;
}