MOOC が nginx を使用して静的リソースをデプロイしていることを以前に見たので、ngjinx を使用してリソースをデプロイしてみたいと思いました。次に、次の質問が必要です:
/course/list
とどのように一致しますか。# しか使用できません。 ## list.html、すべての接続にサフィックス
.html が付かないようにします。これは URL を書き換えるためですか、それとも場所の構成
を使用しますか?
/test/test.html のようなものと一致するはずはありませんが、一致しなかったため、プロキシサーバーですが、静的ページは通常どおり表示されます。
/products/getproducts/2 と一致する可能性があり、実際に
localhost:8086/products/getproducts/2 に転送され、正しいデータは次のようになります。得られた。
最初の質問:
リーリーNginx は、try_files ディレクティブを使用して、index.php などのフレームワークのフロントエンド コントローラーにリクエスト データを簡単にインポートできます:
フロントエンド コントローラーのindex.php は、$_SERVER['REQUEST_URI'] を使用して URL パラメーターの文字列 /course/list を取得できます (/course/list?page=2&tag=mysql など)。 $_SERVER ['QUERY_STRING'] クエリ文字列 page=2&tag=mysql を取得し、それを自分で URL デコードし、explode を使用して文字列を & で分割し、$_GET と同様のパラメータ配列を取得できます。 $_GET を直接使用して取得することもできます。パラメータ配列を取得します。
つまり、HTML 静的ファイルをロードして返すか、データベースに接続して処理するかを決定するのは、プログラムの入り口の Index.php とその内部のプログラムです。
リーリーNginx に HTML キャッシュがヒットしたかどうかを判断させたい場合は、次のように設定できます:
たとえば、/post/1024 にアクセスすると、Nginx は try_files で指定された順序で次のファイルにアクセスしようとします。 /post/1024 ($uri はファイルを表します)
/post/1024/ ($uri/はディレクトリを表します)
/html/post/1024.html (/html$uri.html は HTML 静的キャッシュを表します)
どちらも存在しない場合は、URI 情報とパラメータが処理のために Index.php に渡されます (最後の /index.php?$args はこの意味を表します)。
質問 1、次のような rewrite メソッドを使用できます:
リーリーコースで始まるすべてのリクエストのみが書き換えられることに注意してください
xxx.com/course/list -> xxx.com/course/list.html
xxx.com/course/list/sub -> xxx.com/course/list/sub.html
質問 2
都合がよければ、nginx の設定全体を投稿してください