mod_rewriteを活用する

mod_rewriteを活用する

■mod_rewriteって?

mod_rewriteはApacheのモジュールです。
インストールされていない場合は使用できません。
root権限が無い限り新たにインストールすることは難しいかと思います。

インストールされている場合は下記の方法で使用します。

httpd.confに設定する(処理速度速い)
.htaccessに設定する(処理速遅い)

しかしhttpd.confに設定する場合はroot権限が必要です。
また、httpd.confの更新内容を有効にするには、httpd.conf編集後にApacheを再起動する必要があります。


■mod_rewriteの設定例


・サイトの引越し時のリダイレクト


RewriteEngine on
RewriteRule ^/(.*)$ http://www.newsite.com/$1 [R=301,L]

この方法が有用な点は、R=301 という指定で、HTTPステータスコードの301(Moved Permanently、永久に移動したという意味)を返せる事です。
検索エンジンのロボットがアクセスした場合には、ステータスコード301によってURLが変更されたと読みとってくれます。
Googleでしたらほぼ、PageRankを引き継げるのではないかと思います。


・動的ページのURLを静的ページのURLに変換


RewriteEngine on
RewriteRule ^/cgi-bin/sample/([0-9A-Za-z]+)/([0-9A-Za-z)]+)/?$ /cgi-bin/sample.cgi?a=$1&b=$2 [L]

上の例では
http://www.hoge.com/cgi-bin/sample/123/abc
でアクセスすると

http://www.hoge.com/cgi-bin/sample.cgi?a=123&b=abc
にリダイレクトします。

静的URLの利点はロボット型検索エンジンにクロールやキャッシュされやすいという事です。
検索エンジンのロボットは動的URL(URLの最後が .cgi で終る)にはあまり対応していないために無視されることが多くなります。