Назад | Перейти на главную страницу

Конфигурация Nginx для перенаправления на $ URI

У меня проблема с nginx. Если вы вызываете «example.com» или «example.example.com», nginx перенаправляет его на «www.example.com», как я хочу, без проблем. Но он не перенаправляет, если я ввожу такой URI: «example.com/doesnt-redirect». Он не будет добавлять www. часть и поэтому я получаю 404 от моего сайта блога. Моя конфигурация:

server {

    listen 80;
    server_name www.example.com *.example.com;

    if ($http_host != "www.example.com") {
        return  301 http://www.example.com$request_uri;
    }

    root /home/ghost/;
    index index.html;

}

Использовать server_name .example.com; вместо.

Из nginx имена серверов документация :

Специальное имя с подстановочным знаком в форме «.example.org» может использоваться для соответствия как точному имени «example.org», так и имени подстановочного знака «* .example.org».

Обратите внимание, что www.example.com можно удалить, так как форма подстановочного знака все равно будет соответствовать ему.