URL変更で.htaccessを使ってリダイレクト

  • 投稿者:
  • カテゴリ:
このエントリーをはてなブックマークに追加

某ブログの出力ファイル名に年月日などを入れて出力していたのですが、エントリー保存時に設定されるベースネームでいいかなと思い、ファイル名を変更しました。

しかし、そうするとURLが変わってしまうので、外部のサイトやサービスからのアクセスがリンク切れになってしまいます。そんなときは.htaccessファイルを使ってリダイレクトしてあげることで解決できます。

とは言え、リダイレクトさせるには「古いURL 新しいURL」を一組にしてすべてのURLを書き出さないとなりません。一件、一件書きだしていく?面倒くさい...

こんなときこそCMSの機能を使うことで早く、正確にファイルを書き出せます。MovableTypeであれば下記のような手順になります。

  1. htaccess用のindexテンプレートを用意する。
  2. すべてのエントリーの古いURLと新しいURLを書き出すテンプレートを書きます。
  3. 再構築をして.htaccessを生成します。(書き出し場所は状況に応じて...)

テンプレートはこんな感じ。

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
<mt:entries lastn="0">Redirect permanent /tokyo/archives/entry/<$mt:EntryDate format="%Y%m%d"$>_<$mt:EntryBaseName$>.html /tokyo/archives/entry/<$mt:EntryBaseName$>.html
</mt:entries>

<mt:categories>Redirect permanent /tokyo/archives/cat/<mt:CategoryID>.html /tokyo/archives/cat/<$mt:CategoryBaseName$>.html
</mt:categories>
order deny,allow

このテンプレートではエントリーアーカイブとカテゴリーアーカイブをリダイレクトするようにしてます。

このようにテンプレートから静的な.htaccessファイルを書き出せれば、エントリーが1000件でも、10000件でも手間をかけずに.htaccessファイルを作成することが出来ます。

ちなみにこのファイルは基本的には一度出力してしまえば、再構築の度に出力する必要はないので「テンプレートの設定 > 公開」の設定は手動にしておくと無駄な再構築が減らせます。

.htaccessのファイルを作る便利なサイトもあります。
.htaccess ファイルを簡単作成「.htaccess Editor」

このエントリーをはてなブックマークに追加