Для чего если можно просто указать все версии домена в
server_name
? Чтоб не слетали куки. А то авторизованный на
example.com
человек оказывается не авторизован на
www.example.com
куда его привела скажем ссылка из уведомления о новом ответе на форуме. Это очень раздражает.
Подчтеннейшая публика! Предлагаю Вам вариант универсального редиректа на все виртуальные серваки управляемые целевым nginx'ом.
В общем для мазохистов-любителей длинных имён и прочих эмо есть вариант редиректа с без "www" на "www":
server {
server_name ~^(?!www\.);
rewrite ^ http://www.$host$request_uri permanent;
}
да, почему-то принято упоминать, что автор решения Игорь Сысоев.
Для прочих же, кто не стремится нажимать лишние клавиши преобразование из "www" в без "www"
server {
server_name ~^(?=www\.);
if ( $host ~* "www.(.*)"){
set $unwww $1;
}
rewrite ^ $scheme://$unwww$request_uri permanent;
}
Автор решения Ваш покорный слуга :)
ВНИМАНИЕ! Всё это дело вставляется в начало блока
http
файла
nginx.conf
и не забываем убирать в конфах виртуальных серваков из
server_name
вариант с/без "www" (убираем то, с чего редиректим), а то не сработает!