2010年1月4日月曜日

リダイレクトの仕方

サーバーのログを見ていると、以前のトップファイル(あえてtop.phpとしていた)にアクセスする人がかなり多い。
もしかしたら、ページが表示されなくて未だに閉鎖中と思う方も多いと思ったので、リダイレクトしホームページを見ていただくようにした。

ネットで調べてみると幾つかの方法があるようです。
おもなリダイレクトの方法のなかから三つを試してみた。

  1. 301リダイレクトと呼ばれる方法で、.httaccessを使うなどして行うもの。
  2. HTML<meta http-equiv="Refresh" ...>を使う方法
  3. JavaScriptのlocation.href、またはlocation.replace()を使う方法
1.301リダイレクト
サーバー側に.htaccessを設置する方法。具体的なコードは以下。
Redirect permanent /top.php http://hogehoge.jp/index.php
Redirect permanent /top.html http://hogehoge.jp/index.php

top.phpにアクセスした場合に、index.phpにリダイレクトする
top.htmlにアクセスした場合に、index.phpにリダイレクトする

2.HTMLファイルのヘッダーに直接書き込む方法
head要素内に下記のようなコードを書けば良いだけです。簡単。しかし・・・
<meta http-equiv="Refresh" content="0; URL=/index.php">
/index.php に0秒後にリダイレクトする
*古いURLにリダイレクト用のHTMLを残しておかねばならない。

3.JavaScriptを使ってリダイレクトする
しかしlocation.hrefを使うと"「戻る」ボタンで戻れない問題"が発生するので、履歴の残らないlocation.replace()の方がいいかも(こちらでは戻れる)。
この手法も古いURLにリダイレクト用のHTMLファイルを置いておかねばならないという点で、1.に劣る。

したがって、今回は1.301リダイレクトの手法を選択した。