mod_rewriteを使う


以前使っていたブログのURLにアクセスした場合に自動的に新しいURLに飛ばす、リダイレクトを使用していましたがmod_rewriteという便利なモジュールがあることを知り使ってみました。

http.conf に直接書くことと.htaccessに書く2通りがありますがhttp.confに書いた方が速いそうなのでそうしました。書き方は下記のようになります。

RewriteEngine on
RewirteRule ^/mt/$ /blog/ [R=301,L]

mod_rewriteを使うことを宣言した後、旧URLと新URLを書くわけです。リダイレクトとほとんど同じです。違うのは旧URLに正規表現が使えることです。これによってリダイレクトのように一つひとつ書く必要がないわけです。

RewriteRule 旧URL 新URL [フラグ]

でも、あまりにもURLが違う場合はどうしようもないので結局リダイレクトと変わりませんでした^^
そのときRewriteRuleが何行にもなるわけですがフラグの書き方が重要になります。
R=301とすることで永久に移動したという意味になるそうです。L は最後を表します。
つまりこのように書けばOKということです。

RewriteEngine on
RewriteRule ^/mt/2007/08/post_159\.php$ /blog/diary/k356/ [R=301]
RewriteRule ^/mt/2007/08/post_157\.php$ /blog/movie/k352/ [R=301]
・・・
RewirteRule ^/mt/$ /blog/ [R=301,L]

そのあとApacheを再起動して設定は終了です。


コメントを残す