Почему в $_SERVER['HTTP_HOST'] нет поддомена если делать proxy_pass в nginx?
Есть такой nginx конфиг:
server {
listen 80;
server_name domain.ru;
#всякие настройки
}
server {
listen 80;
server_name sub.domain.ru;
location ~ ^(.+.(jpg|jpeg|gif|png|css|doc|xls|pdf|txt|js|svg|woff|woff2|json))$ {
proxy_pass https://domain.ru/$1;
}
location / {
proxy_pass https://domain.ru/sub/index;
}
location /path1 {
proxy_pass https://domain.ru/path1;
}
location /path2 {
proxy_pass https://domain.ru/path2;
}
location /path3 {
proxy_pass https://domain.ru/path3;
}
}
Есть код PHP в котором мы должны определить в котором поддомене мы находимся. Но если перейти по пути https://domain.ru/ и посмотреть на $_SERVER['HTTP_HOST'], то там только domain.ru. Поддомена нигде в переменной $_SERVER нет.
Подскажите как сделать так, что бы я видел какой сейчас поддомен в PHP?
Я не силен в настройках nginx и думаю что я где-то накосячил именно в нём.
Ответы (1 шт):
Автор решения: Дмитрий Матвиенко
→ Ссылка
За ответ спасибо @andreymal.
Все решилось добавлением настройки proxy_set_header X-Original-Host $host; в nginx. После чего в коде просто использовал $_SERVER['HTTP_X_ORIGINAL_HOST']