Nginx Geoip перенаправить поддомен - PullRequest
0 голосов
/ 28 ноября 2018

я пытаюсь перенаправить пользователя из DE на поддомен https://de.example.com, когда он входит в основной домен https://www.example.com.

Я пробовал следующее:

if ($geoip_country_code ~ (DE)) {
return 301 https://de.example.com$request_uri;

if ($host = 'example.com') {
  return 301 https://www.example.com$request_uri;

Странаредирект работает, но конфликтует с другим редиректом.Как объединить их обоих?

(обновление)

, и когда я делаю это вот так ..

map $geoip_city_country_code $closest_server {
    default www.example.com;
    DE      de.example.com;
}

if ($closest_server != $host) {
    rewrite ^ $scheme://$closest_server$request_uri break;
}

тогда все работает!НО не DE ограничен www.example.com и не может просматривать, например, ar.example.com, he.example.com и т. Д., Что является ядом для бота Google.Поэтому, если для по умолчанию есть значение с подстановочными знаками, оно будет идеальным.

(обновление)

хорошо,

iпопробовал сейчас вот так: nginx.conf:

map $geoip_city_country_code $allowed_country {
    default 0;
    DE 1;
}

hostfile:

server {
    if ($allowed_country = 1) {
        return 301 $scheme://de.example.com$request_uri;
    }
...

Но если зайти сейчас на домен по умолчанию, то яполучить перенаправление на de.example.com, но ошибка:

Слишком много перенаправлений.

Код ошибки: INET_E_REDIRECT_FAILED

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...