Nginx リバースプロキシ (ファイルを除外)

Nginx リバースプロキシ (ファイルを除外)

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 エラー生成フックにフックして、そこでプロキシを実行することで機能を実装する必要があります。

関連情報