Nginx localization rewrite
July 08, 2012 05:43AM
Добрый день.

Необходимо написать 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?
Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 126
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready