У меня есть целевая страница, созданная с помощью WordPress и размещенная на example.com. У меня есть приложение, работающее на app.example.com на внешнем URL. Когда пользователь пытается получить доступ к файлам WordPress, он должен быть обслужен с example.com, и если этот URL или папка недоступны, URL должен быть замаскирован и должен вести на удаленный URL как example.com/$1. Я пробовал использовать обратный прокси nginx, но он не работает.
location / {
try_files $uri $uri/ /index.php?$query_string @proxy;
}
location @proxy {
proxy_pass https://example.com/$1;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
решение1
Проверяет try_files
только, существуют ли реальные файлы в файловой системе. Как только он находит существующий файл, он использует его для обслуживания ответа. try_files
не действует ни на какие коды статуса HTTP.
Поскольку у вас всегда есть /index.php
в файловой системе, @proxy
цель никогда не используется.
Вам необходимо реализовать функционал, подключившись к хуку генерации ошибки 404 в WordPress и выполнив проксирование там.