rewriteでアクセスされたURLから対応するコンテンツを返す
rewriteを使ってアクセスされたURLから正規表現でIDを抽出し、対応するコンテンツをクライアントに返す方法です。
設定
ディレクトリ「/etc/nginx/conf.d」配下に置いたファイル「~.conf」に以下の設定を追加します。
上記の場合、「http://exmaple.com/detail/123」というURLでアクセスされると、クライアントには「http://exmaple.com//public/contents/detail_123.html」のコンテンツが表示されます。
リダイレクトはしていないので、ブラウザに表示されるURLはそのままの状態となります。
リダイレクト
rewriteでリダイレクトさせることも可能です。
最後に「permanent」という文字を付加すると、「http://exmaple.com/detail/123」のアクセスはステータスコード「301」が返され、リダイレクトで「http://exmaple.com//public/contents/detail_123.html」にアクセスします。
この場合、ブラウザに表示されるURLも当然リダイレクト後のURLとなります。
「permanent」は恒久的な変更を示すステータスコード「301」が返されますが、一時的なものであれば「redirect」として「302」のステータスコードを返すようにします。