У меня есть два контейнера (один для Discourse, другой для WordPress) и обратный прокси Nginx, который маршрутизирует трафик следующим образом:
WordPress: любые URL-адреса без /community после mydomain.com.
Discourse: когда URL-адрес — mydomain.com/community.
Это работало стабильно в течение года. После обновления до версии 2.5.0.beta6 я заметил, что при переходе на mydomain.com/community адрес перенаправляется на mydomain.com, но само перенаправление не происходит — Discourse работает нормально (хотя в консоли появляются некоторые ошибки 404).
Если я перехожу к теме, URL-адрес перестраивается с добавлением /community.
Если я перехожу в административную часть, /community в URL не отображается, но я всё ещё могу вносить любые изменения в настройках администратора.
Конечно, если вручную обновить страницу, когда в URL отсутствует /community, меня перенаправляет на WordPress.
Если хотите посмотреть, как это работает: brigadedufric.com/community/ (уберите пробелы).
Как я могу попытаться это исправить?
Если это слишком сложно, я, возможно, просто перенесу всё из подпапки на поддомен, чтобы избежать проблем в будущем. Есть ли рекомендации по этому поводу и о чём не стоит забывать?
Думаю, это ошибка, потому что я наблюдаю то же самое в настройке с подпапкой после обновления.
URL-адреса работают нормально при прямом переходе, и ссылки в разметке верны, но когда JS перехватывает навигацию между страницами, он опускает путь подпапки из URL при вызове history.pushState().
Таким образом, хотя навигация работает, отображаемый пользователю URL неверен, что создает проблему: если кто-то скопирует ссылку для распространения, она приведет к ошибке 404.
Вы уже сами предложили постоянное решение своей проблемы
Установка в подпапку будет и дальше иметь подобные странности, поскольку она не рекомендуется и не получила широкого распространения. Те, у кого есть причины использовать подпапку, обычно вынуждены постоянно сообщать об этих проблемах, чтобы их исправляли.
Поэтому моя лучшая рекомендация для вас — использовать поддомен и закрыть этот вопрос.