У меня есть сайт Wordpress, работающий в среде разработки Vagrant. Когда я загружаюсь http://localhost:8080
, сайт работает нормально, но как только я пытаюсь получить доступ к администратору, перейдя в http://localhost:8080/wp-admin
, Я перенаправлен на http://localhost/wp-admin/
.
Здесь две вещи:
Я пробовал добавить port_in_redirect
директива (если честно, с использованием обоих значений), которую я видел в других ответах на аналогичные вопросы, но она ничего не изменила.
Есть идеи, что мне не хватает?
По умолчанию proxy_redirect
при использовании proxy_pass
внутри location
(адаптировано к вашему варианту использования):
location / {
proxy_pass http://localhost:8080/;
proxy_redirect http://localhost:8080/ /;
}
Поскольку вы используете тот же порт 8080 в Vagrant, он будет соответствовать и удалять порт.
Есть два простых решения, чтобы избежать этого:
proxy_redirect
не совпадает.proxy_redirect
с помощью proxy_redirect off;
.(Я знаю, что это было 4 года назад, но у меня была аналогичная проблема при тестировании KeyCloak, поэтому я надеюсь, что этот ответ поможет другим, которые столкнулись с этой проблемой.)
Вам нужно использовать proxy_redirect чтобы изменить заголовок ответа, чтобы localhost был перезаписан на localhost: 8080
Если вы заметили, что Wordpress выполняет перенаправление (в отличие от NGINX, как вы уже проверили), убедитесь, что настройки wordpress внутри базы данных верны.
Это связано с тем, что Wordpress хранит полный URL-адрес веб-сайта в таблице базы данных с именем wp_options
При стандартной установке эти параметры URL-адреса имеют идентификаторы 1 и 2, а значение ключа - siteurl
и home
. Вы можете использовать такие инструменты, как PhpMyAdmin, для изменения базы данных, чтобы изменить эти значения, чтобы исправить проблемы с перенаправлением.