Перейти к содержанию
  • NGINX 301 редиректы


    content bot

    Nginx, 301 редиректы с http на https протоколы и наоборот

    Nginx, 301 редирект с http на https протокол

    Если у вас на сайте есть SSL сертификат для домена, то вы можете настроить https протокол. После чего для 301-го редиректа вам необходимо добавить следующий код в файл конфигурации nginx для домена:

    server {
      #...
      if ($scheme = http) {
        return 301 https://$server_name$request_uri;
      }
    }

    или

    server {
      #...
      listen  server_ip:80;
      server_name  www.site.com;
      rewrite ^ https://www.site.com$request_uri? permanent; 
    }

     

    Nginx, 301 редирект с https на http протокол

    Обратный пример конфигурации для редиректа с http на https:

    server {
      listen  443;
      server_name  www.site.com;
      rewrite ^ http://www.site.com$request_uri? permanent; 
    }
    
    server {
      listen  80;
      server_name www.site.com;
      #...
    }

     

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

    Пример 301-го редиректа на основное зеркало без www:

    server {
      #...    
      if ($host ~* www\.(.*)) {
        set $host_without_www $1;
        rewrite ^(.*)$ http://$host_without_www$1 permanent;
      }
    }

    или

    server {
      #...
      server_name www.site.com;
      rewrite ^/(.*)$ http://site.com/$1 permanent;
    }

     

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

    Обратный пример 301-го редиректа на основное зеркало сайта с www:

    server {
      #...
      server_name site.com;
      rewrite ^/(.*)$ http://www.site.com/$1 permanent;
    }
    
    server {
      listen  80;
      server_name www.site.com;
      #...
    }

     

    Nginx, 301 редирект для одной страницы

    Если у страницы поменялся URL, то лучше сделать 301 редирект на новый URL:

    server {
      #...
      if ( $request_filename ~ oldpage/ ) {
        rewrite ^ http://www.site.com/newpage/? permanent;
      }
      #...
    }

     

    Nginx, 301 редирект для папки

    Аналогичный пример 301-го редиректа для папки:

    server {
      #...
      if ( $request_filename ~ oldfolder/.+ ) {
        rewrite ^(.*) http://www.site.com/newfolder/$1 permanent;
      }
      #...
    }

     

    Nginx, 301 редирект с одного домена на другой

    Если вы сменили домен сайт и хотите перенести вес старого домена на новый, то можно сделать 301-й редирект со старого домена на новый:

    server {
      server_name domain.com www.site.com; 
      rewrite ^ $scheme://www.new-site.com;
    }

     

    Nginx, 301 редирект с каждой страницы одного домена на такой же URL адрес другого домена

    Если вы планируете изменить свой домен или изменить название предприятия, то пере направление домена является единственным лучшим решением для сохранения пользователей и перевода их запросов на новый домен:

    server {
      server_name site.com www.site.com; 
      rewrite ^ $scheme://www.new-site.com$request_uri permanent;
    }

     

    Nginx, 301 редирект со страниц со слешем "/" на страницы без слеша в конце URL

    Часто бывает так что одна и та же страница доступна по двум URL, например /may-best-page и /my-best-page/, если человеку понятно что это одна и та же страница, то поисковые системы понимают это как две разные страницы, соответственно разбивают вес страницы, а также показываются в аналитике (статистике) как 2 разные страницы. Для того, что бы избежать этого вы можете сделать 301 редирект со страниц со слешем в конце URL на без него:

    server {
      #...
      rewrite ^/(.*)/$ /$1 permanent;
      #...
    }

     

    Nginx, 301 редирект со страниц без слеша на страницы со слешем в конце URL

    Причина делать такой редирект та же, что и в ситуации описанным выше, за исключением того, что редирект необходимо делать со страницы без слеша в конце URL на страницу со слешем в конце URL:

    server {
      #...
      rewrite ^(.*[^/])$ $1/ permanent;
      #...
    }

     

    Дополнительно

    Не забудьте перед использованием примеров сменить site.com на свой домен. После внесения изменений в файл конфигурации nginx для домена необходимо перезапустить nginx:

    service nginx reload

    или

    service nginx restart

    или перезапустить с панели

     

    Для редиректа с site.ru/brand/product на site.ru/product

    при переездах и т.д. добавлять в блок server :

    if (!-d $request_filename){
      set $r 1;
    }
    
    if (!-f $request_filename){
      set $r 2$r;
    }
    
    if ($r = 21){
      rewrite ^/(.*)/(.*)$ $scheme://$host/$2 permanent;
    }

     



×
×
  • Создать...