NGiNX - при перенаправлении на https не удается переписать / заменить правильный подстановочный символ в первоначально запрошенном поддомене - PullRequest
0 голосов
/ 13 октября 2018

Я использую NGiNX сервер для одного из моих application.

моего приложения домен , example.com

У меня есть своего рода требование создание субдомена на лету .

, так что я настроил NGiNX таким же образом для выполнения требований субдомена (бизнеса).

Моя конфигурация NGiNX аналогична

server {
    listen 80;
    server_name *.example.com;
    #access_log      off;
.....
    location / {
      # redirect to secure site
      return 301 https://$server_name$request_uri; # Here it's redirecting me along with * only instead of sub-domain name
    }
.....

}

Вышеупомянутая конфигурация работает отлично но это для HTTP, а не для HTTPS.

Я рассматриваю следующие вещи:

Мой Ожидаемый URL-адрес https://today.example.com после успешного перенаправленияна безопасный (301) канал.

Он перенаправляет меня сюда, https://%2A.example.com/abc?abc=xyz (%2A is *, looks encoding scheme rewrite * -> %2A instead of today)

Вместо это должно быть https://today.example.com/abc?abc=xyz

Итак, как преодолеть эту обработку * (символ подстановки) для успешного перенаправления.

Любая помощь будет действительно полезной !!

1 Ответ

0 голосов
/ 13 октября 2018

Вам нужно $host, а не $server_name в операторе перенаправления.$server_name - это имя, сконфигурированное в nginx, т.е. *.example.com.Вместо этого $host - это имя, используемое клиентом для доступа к серверу и заданное внутри абсолютного URI или заголовка Host, то есть today.example.com:

return 301 https://$host$request_uri;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...