Настройка редиректа с помощью Nginx на VPS
Для настройки редиректа с помощью Nginx необходимо внести изменения в конфигурационный файл nginx.conf.
Если вы настроили виртуальные хосты, то нужно по отдельности редактировать конфигурационный файл каждого хоста.
Редирект добавляется в секцию server в файле конфигурации. Например, редирект на https будет выглядеть так:
Если у вас подключен SSL-сертификат, вам необходимо настроить переадресацию на HTTPS. Для этого добавьте в конфигурационный файл следующий код:
server {
#...
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
#...
}
server {
#...
server_name yourdomain.ru www.yourdomain.ru;
return 301 http://$server_name$request_uri;
#...
}
server {
#...
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent;
}
#...
}
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 — домен, на который производится редирект.
server {
#...
rewrite ^/(.*)/$ /$1 permanent;
#...
}
server {
#...
rewrite ^(.*[^/])$ $1/ permanent;
#...
}
Перезагрузите Nginx
После редактирования конфигурационного файла перезапустите Nginx с помощью команды:
service nginx restart
Проверьте корректность файла конфигурации, используя команду:
nginx -t