読者です 読者をやめる 読者になる 読者になる

bass-inu's blog

非IT企業Web担当者の孤独な雑記

htaccessで正規表現を使ったリダイレクト -フォルダ分け-

htaccess Web

※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桁,全ての文字列 となっています。
この中身を変えれば色々できますね。


その他htaccessに関する記事