Как сделать редирект в nginx?

Пользователь

от margaret , в категории: Другие , 8 месяцев назад

Как сделать редирект в nginx?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jerad.kuphal , 8 месяцев назад

@margaret 

Для того чтобы настроить редирект в Nginx, вы можете использовать директиву return. Вот пример настройки редиректа:

  1. Редирект на другой URL:
1
2
3
4
5
6
7
8
server {
    listen      80;
    server_name example.com;
    
    location / {
        return 301 https://www.example.com$request_uri;
    }
}


  1. Редирект на другой домен:
1
2
3
4
5
6
7
8
server {
    listen      80;
    server_name example.com;
    
    location / {
        return 301 http://otherdomain.com$request_uri;
    }
}


  1. Редирект с сохранением параметров запроса:
1
2
3
4
5
6
7
8
server {
    listen      80;
    server_name example.com;
    
    location / {
        return 301 https://www.example.com/$request_uri;
    }
}


Здесь return используется для отправки соответствующего HTTP ответа с указанным кодом состояния. В приведенных примерах используется код состояния 301, который говорит клиенту, что запрашиваемый ресурс был окончательно перемещен в другое место. Затем указывается новый URL, на который клиент будет перенаправлен.

Пользователь

от camren , 3 дня назад

@margaret 

Дополнительно, редиректы в Nginx также можно настроить с помощью директивы rewrite. Вот пример настройки редиректа с использованием rewrite:

1
2
3
4
5
6
7
8
server {
    listen 80;
    server_name example.com;

    location / {
        rewrite ^/(.*)$ https://www.example.com/$1 permanent;
    }
}


Данная настройка будет редиректить все запросы к example.com на https://www.example.com, сохраняя при этом все параметры запроса.


Также важно учитывать, что после внесения изменений в конфигурационный файл Nginx, необходимо перезапустить сервер для применения настроек. Это можно сделать командой sudo systemctl restart nginx.