Встроенные переменные Nginx - Как получить доменное имя, используемое в запросе?

При использовании нескольких доменных имен для одного сервера, как получить доменное имя, которое в настоящее время используется в запросе? Я использую встроенные переменные для Nginx в его файле конфигурации.

Я установил OpenSSL и имею перенаправление, которое отлично работает для моего первого домена, поскольку, как вы можете видеть, я ' m явно перенаправляя на него в конце моего файла конфигурации. Таким образом, HTTP-запрос на любом из других доменов перенаправляется на этот первый для безопасного соединения. Есть ли встроенная переменная, которую я могу использовать, например, похожую на $ request_uri , но просто возвращающую заданное имя домена, используемое клиентом?

Вот блок сервера, в котором я выполняю перенаправление.

server {
        listen 80;
        listen [::]:80;
        server_name example.com example1.com example2.com example3.com;
        location / {
                return 301 https://example.com$request_uri;
        }
}

И остальная часть моего конфига: https://pastebin.com/HgnZ0aBe

1
задан 27 January 2018 в 06:46
1 ответ

Имя домена, которое используется в запросе, в основном является заголовком запроса хоста. В nginx переменной для заголовка хоста является $ host. Поэтому, если вы хотите перенаправить на основе имени домена / хоста, вам следует изменить конфигурацию на:

return 301 https://$host$request_uri;

Надеюсь на эту помощь. Спасибо

1
ответ дан 3 December 2019 в 23:20

Теги

Похожие вопросы