最近、仕事と趣味のプロジェクトで立て続けにnginxを使う機会があった。nginx + PHPについてこないだエントリを書いたけど、今回はApapcheのmod_rewriteのような機能を使ってWordPressのFancy URLを実現する方法について少し書く。といっても簡単。
参考にしたのはここ(英語)。
■やりたい事
WordPressは以下のURLでアクセスするものとする。
http://www.example.com/blog/
Permalinkは、デフォルトだと以下のURL。
http://www.example.com/blog/?p=xxx
これを以下のようにしたい。
http://www.example.com/blog/index.php/YYYY/MM/entry-name/
■WordPressはmod_rewriteの有無を判断
ちなみに、Apacheを使っていると、WordPressがmod_rewriteの存在有無をチェックして、上記のURLからindex.phpの部分を除いたURLが選択できるようになってるんだけど、nginx上で動かしている場合はmod_rewriteなしと判断されてしまい、選択できるURLはいずれもindex,phpという文字列が含まれたものになっている。
もちろん、nginxでもmod_rewrite相当の事が出来るので、選択肢から選ばずに、自分でindex.php無しのURLを指定する事も出来るはず。