Httpd

2013-07-11, httpd

mod_rewirteでパラメタを隠す

「/foo/bar/how-are-you」みたいな”読める"URLが流行っています。いや、流行っている訳じゃないんですが、検索結果の一覧や、URLをメールなどにペーストしたときに、どんなページか分かりやすいというメリットがあるので個人的に大好きです。あと、いかにも「PHP(or JSP)で作りました!」的な素人っぽさをサラリと隠せるところも魅力的です。

さて、Java(Servlet)の場合は、パスに対する応答を決めるという低レベルな部分からプログラムが始まるので簡単に実装できるこの手の仕掛けですが、PHPの場合は、常にファイルを直置きというシンプル仕様のため、単体では実現が出来ません(恐らく)。そこでお世話になるのが、mod_rewriteです。httpd.confなどの設定ファイルの任意の位置に以下のような記述を追加するだけで、冒頭の例「/foo/bar/how-are-you」へのアクセスを、「/foo/bar.php?path=how-are-you」に振り替えてくれます。

RewriteEngine on
RewriteRule ^/foo/bar/([a-z0-9-]+)$ /foo/bar.php?path=$1

参考URL

この記事は役に立ちましたか?