ngix confファイルに書き直しましたが、$ uri変数の一部としてロケーションブロックが含まれているように見えることを除いて、正常に動作します。ロケーションブロックの後にのみパスが必要です。私の現在の構成コードは次のとおりです。
location /cargo {
try_files $uri $uri/ /cargo/index.php?_REWRITE_COMMAND=$uri&args;
}
http://localhost/cargo/testpage
リダイレクトのURLの例を使用すると機能しますが、私のphpファイルが受け取る「_REWRITE_COMMAND」パラメーターの値は「/ cargo / testpage」です。ロケーションブロックを取り除き、$ uriとして「testpage」のみを取得する必要があります。
$ uriを分割し、$ 1 $ 2などを使用して新しい変数に割り当てる正規表現構文があると確信していますが、書き換えの一部ではない正規表現を使用して変数の割り当てを行うだけの例は見つかりませんステートメント。私は何時間も探してみましたが、この最後のステップを乗り越えることができないようです。
また、アプリケーションコードでこれを削除することもできますが、nginx confで修正しようとする理由は、Apacheでも実行されるため、互換性のためです。私はそれを行うための本当にハックな方法を見つけたと言うべきですが、ファイルの存在をチェックするための「if」ステートメントが含まれており、ドキュメントは具体的にはそうしないと述べています。