0

我想en-us在 URL 上添加语言代码。预期如下。

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

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

如何将客户重定向到以下场景

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

4

2 回答 2

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;
}
于 2018-04-30T04:54:26.607 回答
0

你读过重写文档吗?那里有很多类似的例子。

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

# Do not redirect /
location = / {
}

# Redirect everything else to /en-us/...
location / {
    rewrite ^/(.*)$ /en-us/$1 redirect;
}
于 2018-04-30T05:00:29.260 回答