NGINX перенаправить на www в многодоменной среде
Как я могу перенаправить не-www на www в NGINX, если доменное имя не определено заранее? Все примеры, которые я нашел, показывают domain.com или example.com. Мне нужно перенаправить на любой домен. Есть указатели?
2 ответа
Решение
Это тот, который заставил меня идти:
if ($host ~* ^[^.]+\.[^.]+$) {
rewrite ^(.*)$ http://www.$host$1 permanent;
}
Вы можете указать сервер по умолчанию для перехвата доменов, которые не указаны в server_name
директивы вашей конфигурации.
listen 80 default_server;
заставит этот сервер перехватывать несоответствующие доменные имена (при условии, что порт равен 80 на всех интерфейсах).
Это четкое объяснение такого поведения.
(не то, что до nginx 0.8.21 default
(не default_server
) должен быть указан).