Перейти к основному контенту

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

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

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

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

Редиректы на Nginx

Редирект с http на https-протокол

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

server {
   #...
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
   #...
}
Редирект с https на http-протокол

Обратный пример конфигурации для редиректа с 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;
}
   #...
}
Редирект для одной страницы

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

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.new-yourdomain.ru;
   #...
}

Где www.new-yourdomain.ru — домен, куда будет осуществляться редирект.

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

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

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

Проверить корректность конфигурационного файла можно с помощью команды: nginx -t

 

VPS с установленной CentOS

Закажите сервер с чистой CentOS или панелью управления ISPmanager всего за пару минут.

Заказать VPS c Centos

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 1