я пытаюсь перенаправить пользователя из 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