Наше приложение PHP (на заказ, без фреймворка) иногда должно использовать свой базовый полный URL (например, для хранения URL в файлах, отправляемых клиентам). На основании, например, этого вопроса наше приложение догадывается об этом (это основано на сравнении __FILE__
и различных переменных в $SERVER
, таких как SCRIPT_NAME
и SERVER_NAME
).
Сейчас нам нужно настроить (nginx) обратный прокси-сервер перед нашим приложением. Предположим, что мы сопоставляем https://example.com/some/dir/onproxy/
с http://backend/another/dir/onbackend/
.
Есть ли способ угадать URL-адрес publi c (https://example.com/some/dir/onproxy/
) из кода на backend
?
AFAIU (из моих чтений и экспериментов), это невозможно (HTTP_HOST
может дать example.com
, но я не нашел ничего, что указывает на some/dir/onproxy
), но, возможно, я что-то упускаю (некоторые переменные или параметр конфигурации nginx).
Есть идеи?
Если это невозможно, единственное решение - сохранить https://example.com/some/dir/onproxy/
в конфигурации, верно?
РЕДАКТИРОВАТЬ 1
Как подсказал @Progman, я попробовал решения по этому вопросу . Я пробовал как принятый ответ, так и второй по популярности ответ, но оба возвращают (в некоторых вариациях) URL-адрес на бэкэнд (http://backend/another/dir/onbackend/
).
РЕДАКТИРОВАТЬ 2
Я забыл упомянуть, что не хотел бы полагаться на перезапись URL в прокси.