Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Nginx редирект с www на без www

Тема в разделе "Свободное общение", создана пользователем Xauber, 10 май 2017.

10.05.17 в 16:25
14.05.17 в 17:28
17
2.468
0
  1. TopicStarter Overlay
    Xauber

    Команда форума VIP Кинотрафик v2

    Регистрация:
    25 фев 2017
    Сообщения:
    44
    Лучших ответов:
    1
    Рейтинги:
    +21 / 1 / -0
    Вопрос, как реализовать редирект с www на без www, на nginx?

    Нашел такой код:
    Код:
    server {
    server_name www.site.com;
    return 301 $scheme://site.com$request_uri;
    }
    Вот только куда и как его ставить?
    Код конфига домена:
    Код:
    server {
        server_name site.com www.site.com;
        charset off;
        index index.html index.php;
        disable_symlinks if_not_owner from=$root_path;
        include /etc/nginx/vhosts-includes/*.conf;
        include /etc/nginx/vhosts-resources/site.com/*.conf;
        access_log /var/www/httpd-logs/site.com.access.log;
        error_log /var/www/httpd-logs/site.com.error.log notice;
        ssi on;
        return 301 https://$host:443$request_uri;
        set $root_path /var/www/user/data/www/site.com;
        root $root_path;
        listen :80;
        gzip on;
        gzip_comp_level 5;
        gzip_disable "msie6";
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
        location / {
            location ~ [^/]\.ph(p\d*|tml)$ {
                try_files /does_not_exists @fallback;
            }
            location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
                expires 30d;
                try_files $uri $uri/ @fallback;
            }
            location / {
                try_files /does_not_exists @fallback;
            }
        }
        location @fallback {
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect http://127.0.0.1:8080 /;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Port $server_port;
            access_log off;
        }
    }
    server {
        server_name site.com www.site.com;
        ssl on;
        ssl_certificate "/var/www/httpd-cert/user/site.com.crt";
        ssl_certificate_key "/var/www/httpd-cert/user/site.com.key";
        ssl_ciphers;
        ssl_prefer_server_ciphers on;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        add_header Strict-Transport-Security "max-age=31536000;";
        charset off;
        index index.html index.php;
        disable_symlinks if_not_owner from=$root_path;
        include /etc/nginx/vhosts-includes/*.conf;
        include /etc/nginx/vhosts-resources/site.com/*.conf;
        access_log /var/www/httpd-logs/site.com.access.log;
        error_log /var/www/httpd-logs/site.com.error.log notice;
        ssi on;
        set $root_path /var/www/user/data/www/site.com;
        root $root_path;
        listen :443;
        gzip on;
        gzip_comp_level 5;
        gzip_disable "msie6";
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
        location / {
            location ~ [^/]\.ph(p\d*|tml)$ {
                try_files /does_not_exists @fallback;
            }
            location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
                expires 30d;
                try_files $uri $uri/ @fallback;
            }
            location / {
                try_files /does_not_exists @fallback;
            }
        }
        location @fallback {
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect http://127.0.0.1:8080 /;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Port $server_port;
            access_log off;
        }
    }
    Ещё, может, как-то через ispmanager5 возможно реализовать?
     
  2. yuragan

    yuragan Бывалый

    Регистрация:
    2 фев 2017
    Сообщения:
    396
    Лучших ответов:
    0
    Рейтинги:
    +118 / 1 / -0
    я конечно не знаю, но я бы попробовал заменить

    Код:
    server_name www.site.com;
    return 301 $scheme://site.com$request_uri;
    вместо второй строки твоего конфига....хз конечно))
     
  3. wawe

    PRO Users

    Регистрация:
    23 янв 2017
    Сообщения:
    3.555
    Лучших ответов:
    6
    Рейтинги:
    +1.579 / 410 / -0
    .htaccess

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.мой сайт\.org [NC]
    RewriteRule ^(.*)$ http://мой сайт.org/$1 [R=301,L]

    и некуй велосипед изобретать. :confused:
     
  4. TopicStarter Overlay
    Xauber

    Команда форума VIP Кинотрафик v2

    Регистрация:
    25 фев 2017
    Сообщения:
    44
    Лучших ответов:
    1
    Рейтинги:
    +21 / 1 / -0
    Не работает под nginx.
     
  5. wawe

    PRO Users

    Регистрация:
    23 янв 2017
    Сообщения:
    3.555
    Лучших ответов:
    6
    Рейтинги:
    +1.579 / 410 / -0
    ну хз - что вы там делаете- у меня 3 сайта так работают и не жалуются.
     
  6. ZULI

    ZULI Бывалый

    Регистрация:
    16 ноя 2016
    Сообщения:
    926
    Лучших ответов:
    1
    Рейтинги:
    +249 / 29 / -0
    Вроде как после server_name нужно строку редиректа
     
  7. ZULI

    ZULI Бывалый

    Регистрация:
    16 ноя 2016
    Сообщения:
    926
    Лучших ответов:
    1
    Рейтинги:
    +249 / 29 / -0
    Неужели под nginx работают .htaccess ? А то все мучаются с пропиской конфигов, а оно вон у тебя работает аж на 3х сайтах.
     
    • Нравится Нравится x 1
  8. Sitronik

    Sitronik Бывалый

    Регистрация:
    14 сен 2016
    Сообщения:
    132
    Лучших ответов:
    0
    Рейтинги:
    +28 / 0 / -0
    # Редирект с www на без www

    server {
    listen 80;
    server_name www.example.net;
    return 301 $scheme://example.net$request_uri;
    }
     
  9. Sitronik

    Sitronik Бывалый

    Регистрация:
    14 сен 2016
    Сообщения:
    132
    Лучших ответов:
    0
    Рейтинги:
    +28 / 0 / -0
    В конфиг виртуального хоста прописать нужно, если настроены виртуальные хосты. Если нет тогда в nginx.conf
     
  10. yuragan

    yuragan Бывалый

    Регистрация:
    2 фев 2017
    Сообщения:
    396
    Лучших ответов:
    0
    Рейтинги:
    +118 / 1 / -0
    Вставь этот код в самый верх твоего конф
    Код:
    server {
         listen  80;
         server_name  www.site.com;
         rewrite ^ http://site.com$request_uri? permanent; 
    }
    Далее находишь строчку
    Код:
      server_name site.com www.site.com;
    Заменяешь на
    Код:
     listen  80;
         server_name site.com;
     
  11. yuragan

    yuragan Бывалый

    Регистрация:
    2 фев 2017
    Сообщения:
    396
    Лучших ответов:
    0
    Рейтинги:
    +118 / 1 / -0
  12. TopicStarter Overlay
    Xauber

    Команда форума VIP Кинотрафик v2

    Регистрация:
    25 фев 2017
    Сообщения:
    44
    Лучших ответов:
    1
    Рейтинги:
    +21 / 1 / -0
    Странно, но ни один из примеров не работает. И так пробовал ставить и этак...

    Панель управления стоит ispmanager 5
    К домену подключен SSL
    Настройки сервера на скриншотах ниже.
    Может у кого есть сайты с работающем редиректом, под такую конфигурацию? Или может что-то изменить?

    2017-05-10_234803.png 2017-05-10_234842.png
     
  13. yuragan

    yuragan Бывалый

    Регистрация:
    2 фев 2017
    Сообщения:
    396
    Лучших ответов:
    0
    Рейтинги:
    +118 / 1 / -0
    на скрине вроде апач вкл, получается в связке работает серв.
    для SSL порт в listen наверно такой 443
    может придет кто понимающий, решит, а так погугли apache+nginx
     
  14. TopicStarter Overlay
    Xauber

    Команда форума VIP Кинотрафик v2

    Регистрация:
    25 фев 2017
    Сообщения:
    44
    Лучших ответов:
    1
    Рейтинги:
    +21 / 1 / -0
    Вроде решил проблему.

    Распишу, может кому понадобится:

    1. Во-первых удалить первый блок server.
    server {
    server_name site.com www.site.com;
    charset off;
    index index.html index.php;
    disable_symlinks if_not_owner from=$root_path;
    include /etc/nginx/vhosts-includes/*.conf;
    include /etc/nginx/vhosts-resources/site.com/*.conf;
    access_log /var/www/httpd-logs/site.com.access.log;
    error_log /var/www/httpd-logs/site.com.error.log notice;
    ssi on;
    return 301 https://$host:443$request_uri;
    set $root_path /var/www/user/data/www/site.com;
    root $root_path;
    listen :80;
    gzip on;
    gzip_comp_level 5;
    gzip_disable "msie6";
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
    location / {
    location ~ [^/]\.ph(p\d*|tml)$ {
    try_files /does_not_exists @fallback;
    }
    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    expires 30d;
    try_files $uri $uri/ @fallback;
    }
    location / {
    try_files /does_not_exists @fallback;
    }
    }
    location @fallback {
    proxy_pass http://127.0.0.1:8080;
    proxy_redirect http://127.0.0.1:8080 /;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Port $server_port;
    access_log off;
    }
    }

    Так как, это дубль (конфиг без прописанного SSL).

    2. В оставшемся коде заменить строку:
    Код:
    server_name site.com www.site.com;
    на
    Код:
    server_name site.com;
    3. Внизу, под блоком server, вставить следующий код:
    Код:
    server {
         listen ip-адрес:порт;
         server_name  www.site.com;
         rewrite ^ https://site.com$request_uri? permanent;
    }
    Ip-адрес и порт скопировать из блока выше.

    4. Рестарт nginx.
     
  15. yuragan

    yuragan Бывалый

    Регистрация:
    2 фев 2017
    Сообщения:
    396
    Лучших ответов:
    0
    Рейтинги:
    +118 / 1 / -0
    работает? мне кажется это не дубль, а настройки. там как я понял в блоке сжатие картинок и т.д.. идет, который ты пишешь удалить.

    все понял, не досмотрел))), как сам то проглядел, что два сектора одинаковые))?
     
    #15 yuragan, 14 май 2017
    Последнее редактирование модератором: 31 май 2017
  16. TopicStarter Overlay
    Xauber

    Команда форума VIP Кинотрафик v2

    Регистрация:
    25 фев 2017
    Сообщения:
    44
    Лучших ответов:
    1
    Рейтинги:
    +21 / 1 / -0
    Да, работает.

    ISPmanager, почему-то создает дубли при создании сайта с SSL.
     
  17. yuragan

    yuragan Бывалый

    Регистрация:
    2 фев 2017
    Сообщения:
    396
    Лучших ответов:
    0
    Рейтинги:
    +118 / 1 / -0
    Думаешь из за панели?
     
  18. TopicStarter Overlay
    Xauber

    Команда форума VIP Кинотрафик v2

    Регистрация:
    25 фев 2017
    Сообщения:
    44
    Лучших ответов:
    1
    Рейтинги:
    +21 / 1 / -0
    Точно не напишу, возможно проблема в чем-то другом...
     
Похожие темы
  1. mikeevstropov
    Ответов:
    5
    Просмотров:
    3.224
  2. pouf
    Ответов:
    30
    Просмотров:
    3.250
  3. Kino-Pult
    Ответов:
    34
    Просмотров:
    3.983
  4. Nika
    Ответов:
    8
    Просмотров:
    3.747
  5. byroot
    Ответов:
    11
    Просмотров:
    1.175
Загрузка...
Яндекс.Метрика