Чтобы сделать редирект с помощью nginx, необходимо изменить файл конфигурации nginx.conf.
Если у вас настроены виртуальные хосты, файл конфигурации для каждого хоста нужно редактировать отдельно.
Редирект добавляется в секцию server в конфигурационном файле. Пример редиректа на https:
Редирект с 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
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊