wordpress を使用して作成したランディング ページがあり、example.com でホストされています。外部 URL の app.example.com で実行されているアプリがあります。ユーザーが wordpress ファイルにアクセスしようとすると、example.com から提供される必要があり、その URL またはフォルダーが利用できない場合は、URL をマスクして、example.com/$1 などのリモート URL に移動する必要があります。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
のみをチェックします。存在するファイルが見つかると、そのファイルを使用して応答を提供します。HTTPtry_files
ステータス コードには影響しません。
/index.php
ファイルシステムには常に存在するため、@proxy
ターゲットは使用されることはありません。
WordPress 404 エラー生成フックにフックして、そこでプロキシを実行することで機能を実装する必要があります。