При использовании нескольких доменных имен для одного сервера, как получить доменное имя, которое в настоящее время используется в запросе? Я использую встроенные переменные для 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
Имя домена, которое используется в запросе, в основном является заголовком запроса хоста. В nginx переменной для заголовка хоста является $ host. Поэтому, если вы хотите перенаправить на основе имени домена / хоста, вам следует изменить конфигурацию на:
return 301 https://$host$request_uri;
Надеюсь на эту помощь. Спасибо