htaccessで正規表現を使ったリダイレクト -フォルダ分け-
※Qiitaにも書いた
htaccessで正規表現を使ったリダイレクト - Qiita
サイトの移転や構成を変えた時に使用するリダイレクト。
今回はディレクトリを丸ごと移動した時用のhtaccessメモ。
今まで「西暦+月」でディレクトリを作っていた
/201001/ /201002/ : : /201201/ /201202/ : :
当たり前ですがだんだんフォルダ数が多くなってきて面倒くさい感じに。
こうしたい
/2010/01/ /02/ : : /2012/01/ /02/ : :
これで管理がラクに…!
ということでサイト内お引越し開始。
フォルダを移動させ終わって、あとは古いURLにアクセスがあった際に新しいURLへ転送されるようにする。
.htaccessにこの1行。
RedirectMatch permanent ^/(2010|2011|2012)([0-9]{2})/(.*)$ /$1/$2/$3
これで完了。
この例だと2010~2012年分のフォルダにのみ適用される。
2000年~20XX年までリダイレクトしたいとき
RedirectMatch permanent ^/(20[0-9]{2})([0-9]{2})/(.*)$ /$1/$2/$3
2000年以前のディレクトリもあるとき
RedirectMatch permanent ^/([0-9]{4})([0-9]{2})/(.*)$ /$1/$2/$3
サイトのURLも変わった時
RedirectMatch permanent ^/([0-9]{4})([0-9]{2})/(.*)$ http://移転先URL/$1/$2/$3
基本の形
RedirectMatch permanent 移転前パス 移転後パス
今回のリダイレクトの中身
移転前→ ^/([0-9]{4})([0-9]{2})/(.*)$ 移転後→ /$1/$2/$3
正規表現は 数字4桁,数字2桁,全ての文字列 となっています。
この中身を変えれば色々できますね。