ぶろぐ

日記です

クールなURIを実現する「mod_rewrite」


機能

巷では「URLを操作するためのスイス製のアーミーナイフ」と呼ばれているらしいmod_rewrite
何それカッコイイ!
この子は、URIを自在に操ることができるApacheのモジュールです。
正規表現が使えたり、リダイレクト、HTTPステータスコードを変更できたりと、機能が多彩なのでそう呼ばれているのでしょう。
最近Webを支える技術を読んでURIにロマンを感じたのでオレもクールなURIを実装したい!

用途

  • URIが変更になった場合のリダイレクトに
  • WebAPIを作るときに、RESTfulなURIを実現
  • CGIなどによる動的ページを静的ページに見せかける
  • SEO対策
  • アクセスを拒否する

簡単な動作例

/hellow_world/というディレクトリへのアクセスを/hoge/にリダイレクトする。

コード


RewriteEngine on
RewriteRule ^/hellow_world/$ /hoge/

動的ページを静的ページに見せかける例

コード

RewriteEngine on
RewriteRule ^/test/([0-9A-Za-z]+)/([0-9A-Za-z]+)$ /test/test.php?val1=$1&val2=$2

設定はどこに?

httpd.confに記述するのがデフォ。
何らかの理由でhttpd.confがいじれない場合は、.htaccessに記述。httpd.confに記述したほうが高速です。

注意点

画像やjsファイル、CSSファイルなどのパスがずれます。
絶対パスで記述するのが無難みたいです。