nginxでFuelPHPを使うためのrewrite設定方法


nginxよくわかんないよ(´;ω;`)

最近ちょこちょこいじっているのですが、設定周りでapacheと勝手が違う部分が多々あり苦労してます。

特にrewriteモジュールの記述の仕方があまりよく分かりません。FuelPHPを使いたいのでどうしても必要なのですが、肝心のところで結構ハマってました。

一度コツを掴むとapacheよりだいぶシンプルで書きやすいのですが、一応忘れてしまった時のためにメモメモ……

rewriteに至る基本的な流れは、

指定のURIに一致するファイルがあるか調べる → なかったらディレクトリがあるか調べる → それもなかったらrewriteする

と言った感じです。この部分はnginxのtry_files構文で簡単に書けます。

「location @rewrite…」から始まるlocationディレクティブは、「名前付きロケーション」と言うみたいです。内部リダイレクト処理を行う際に、アットマークから始まる名前を指定すると、その名前がついたブロック内の処理を行います。詳しくはnginxのドキュメントを参照してください。→http://wiki.nginx.org/HttpCoreModuleJa#location

ちなみに、try_filesを使わなくてもif文を利用すれば前述の流れは実現できますが、やたら長くなるし、nginx的には非推奨らしくいいとこなしなので、素直にtry_filesを利用するほうがいいと思います。
参考リンク: nginxのifに要注意 TECHSCORE BLOG

そして、ファイル・ディレクトリが存在しなかった場合のリライト処理ですが、俺は以下のように書きました。

このあたりの書き方は個人差・環境差があるので一概には言えませんが、自分の手元の環境ではこれで動作しました。

書き方はリファレンスを参照!!→http://wiki.nginx.org/HttpRewriteModuleJa#rewrite

ここに書いてあることを更に凝縮して、しかも分かりやすい記事があるので、そちらを読んだほうが幸せになれるかもしれません……
参考リンク: nginx連載5回目: nginxの設定、その3 – locationディレクティブ – インフラエンジニアway – Powered by HEARTBEATS 

 

「nginxでFuelPHPを使うためのrewrite設定方法」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です