Настройка редиректа с помощью Nginx на VPS

Для настройки редиректа с помощью Nginx необходимо внести изменения в конфигурационный файл nginx.conf.

Если вы настроили виртуальные хосты, то нужно по отдельности редактировать конфигурационный файл каждого хоста.

Редирект добавляется в секцию server в файле конфигурации. Например, редирект на https будет выглядеть так:

 
Редирект с HTTP на HTTPS-протокол

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

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

 

 
Редирект с HTTPS на HTTP-протокол
server {
   #...
  server_name  yourdomain.ru www.yourdomain.ru;
return 301 http://$server_name$request_uri;
   #...
}

 

 
Редирект с www на без www
server {
   #...
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent;
}
   #...
}

 

 
Редирект с без www на www
server {
  #...
if ($host ~* ^[^.]+\.[^.]+$) {
    rewrite ^(.*)$ $scheme://www.$host$1 permanent;
}
   #...
}

 

 
Редирект для одной страницы

Если у страницы изменился URL, сделайте 301 редирект на новый адрес.

server {
   #...
if ( $request_filename ~ oldpage.html/ ) {
rewrite ^ newpage.html permanent;}
   #...
}

Где oldpage.html — страница, с которой производится редирект, а newpage.html — страница, на которую происходит редирект.

 
Редирект для папки
server {
   #...
if ( $request_filename ~ oldfolder/.+ ) {
 rewrite ^(.*) newfolder/$1 permanent; }
   #...
}

Где oldfolder — имя старой папки, а newfolder — имя новой папки.

 
Редирект с одного домена на другой
server {
   #...
   rewrite ^ $scheme://www.newdomain.ru;
   #...
}

Где www.newdomain.ru — домен, на который производится редирект.

 
Редирект на страницу без слеша в конце URL
server {
   #...
   rewrite ^/(.*)/$ /$1 permanent;
   #...
}

 

 
Редирект на страницу со слешем в конце URL
server {
   #...
  rewrite ^(.*[^/])$ $1/ permanent;
   #...
}

 


Перезагрузите Nginx

После редактирования конфигурационного файла перезапустите Nginx с помощью команды:

service nginx restart

Проверьте корректность файла конфигурации, используя команду: 

nginx -t


 

Если вы не нашли ответ, спросите у нас!
Написать в поддержку