Как добавить код языка после доменного имени на nginx - PullRequest
0 голосов
/ 30 апреля 2018

Я хотел бы добавить en-us код языка в URL. Ожидание выглядит следующим образом.

Когда пользователь нажимает на страницу http://example.com/,, пользователи должны перенаправить на http://example.com/en-us/ Примечание: я добился этого с помощью следующего кода.

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

Как перенаправить клиентов в следующие сценарии

Просто я хочу, чтобы в URL не было en-us, тогда мы должны добавить en-us в XX-XX место. http://example.com/XX-XX/contact

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Читали ли вы документацию по переписыванию ? Там много похожих примеров.

Это я бы сделал это (не проверено).

# Do not redirect /
location = / {
}

# Redirect everything else to /en-us/...
location / {
    rewrite ^/(.*)$ /en-us/$1 redirect;
}
0 голосов
/ 30 апреля 2018
# 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;
}
...