При использовании нескольких доменных имен для одного сервера, как получить доменное имя, которое в настоящее время используется в запросе? Я использую встроенные переменные для Nginx в его файле конфигурации.
Я установил OpenSSL, и у меня есть перенаправление, которое отлично работает для моего первого домена, поскольку, как вы можете видеть, я явно перенаправляю на него в нижней части моего файла конфигурации. Таким образом, 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;
Надеюсь на эту помощь. Спасибо