Welcome! Log In Create A New Profile

Advanced

Nginx localization rewrite

July 08, 2012 05:48AM
Добрый день.

Необходимо написать rewrite правила для Английской и Русской версии сайта.
Пускай домен сайта example.com по умолчанию у него Английская локаль.

Если у пользователя в браузере en локаль, то он должен попадать на example.com, если ru локаль, то на ru.example.com.
Для этого я написал следующие правила:

...
location / {
if ($host = 'example.com') {
set $zzz e;
}
if ($http_accept_language ~* "^ru") {
set $zzz "${zzz}ru";
}
if ($zzz = eru) {
rewrite ^/(.*)$ http://ru.example.com/$1 permanent;
}
...
}

Следующие случаи работают прекрасно:
1. юзер с локалью en заходит на example.com
2. юзер с локалью en заходит на ru.example.com
3. юзер с локалью ru заходит на example.com и его редиректит на ru.example.com

Как быть, если юзер с локалью ru хочет зайтина example.com только на английскую версию сайта?
Можно сделать en.example.com и дальше редиректить его на example.com, но в таком случае он снова окажется на ru.example.com.

Как сделать так, чтоб если пользователь с ru локалью выбирал бы en.example.com, его редиректило на example.com, но без выполнения последующего редиректан на ru.example.com?
Subject Author Posted

Nginx localization rewrite

cackle July 08, 2012 05:48AM

Re: Nginx localization rewrite

Andrey Repin July 08, 2012 07:22PM

Re: Nginx localization rewrite

cackle July 09, 2012 07:11AM

Re: Nginx localization rewrite

Andrey Repin July 09, 2012 08:20AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 182
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready