Ich habe eine Landingpage mit WordPress erstellt, die auf example.com gehostet wird. Ich habe eine App, die auf app.example.com unter einer externen URL läuft. Wenn ein Benutzer versucht, auf WordPress-Dateien zuzugreifen, sollte dies von example.com aus erfolgen. Wenn diese URL oder dieser Ordner nicht verfügbar ist, muss die URL maskiert werden und muss zur Remote-URL als example.com/$1 führen. Ich habe versucht, den Reverse-Proxy von Nginx zu verwenden, aber das funktioniert nicht.
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;
}
Antwort1
Es try_files
wird nur geprüft, ob tatsächlich Dateien im Dateisystem vorhanden sind. Sobald eine vorhandene Datei gefunden wird, wird diese verwendet, um eine Antwort zu senden. try_files
Es wird nicht auf HTTP-Statuscodes reagiert.
Da Sie es immer /index.php
in Ihrem Dateisystem haben, @proxy
wird das Ziel nie verwendet.
Sie müssen die Funktionalität implementieren, indem Sie sich in den Hook zur 404-Fehlergenerierung von WordPress einklinken und dort das Proxying durchführen.