if ($host != $server name) и несколько доменов в server name

azverev nginx-forum на nginx.us
Чт Сен 3 13:40:10 UTC 2015


Здравствуйте.

Имеется серве на котором висят сайты one.com и www.two.com test.two.com
admin.two.com *.two.com
one.com доступен по 80
*.two.com доступен только по 443 (с 80 идёт редирект на 443)

Часть клиентов иногда заходит на one.com по 443 и попадают не туда (их
запрос попадает на https://two.com:443/). 

Я прописал в конфиге второго сайта if 

 if ($host != $server_name) { rewrite ^ http://$host$request_uri? redirect;
}

Но if как-то странно отрабатывается, он проверяет $host только с первым
доменом в списке $server_name

То есть когда запрос приходит на admin.two.com то его редиректит на http, а
такого быть не должно.

Подскажите, где я ошибся.
По логике, я хотел все запросы, которые приходят на сайт c ssl и не
совпадают с доменами из server_name редиректить на http://$host/

ps Такая схема ( if ($host != $server_name) { rewrite ^
http://$host$request_uri? redirect; } ) удачно работает на нескольких
серверах, но там везде один домен в server_name.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261407,261407#msg-261407



Подробная информация о списке рассылки nginx-ru