Создание редиректа на домен с www

Выполняем редирект с домена без www

server {
    listen [[IP]]:80;
    server_name [[DOMAIN]];
    return 301 $scheme://www.[[DOMAIN]]$request_uri;
}

на домен с www

server {
    listen [[IP]]:80;
    server_name www.[[DOMAIN]];
    root /home/[[DOMAIN]]/httpdocs;
}

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

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

или

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

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

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

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

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

или

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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