ウェブサイトを移転した場合など、指定したURLに自動的に転送させたい

新URLへ自動移動

移転先(新URL)へ自動移動

ウェブサイト全体や、特定のページにアクセスしてきたユーザを、指定のURLに自動転送したい場合があります。例えば、以下のような場合です。
  • ウェブサイトを移転して、URLが変更になった場合
  • ウェブサイトの構造を改変して、一部のファイル名やディレクトリ名が変更になった場合


 
自動転送のタイミング
自動転送(リダイレクト)方法2種類

自動転送(リダイレクト)方法2種類

移転先へ自動転送するタイミングには、右図のように2種類があります。

  1. アクセスされた瞬間に自動転送する
  2. しばらくは「移転した旨のメッセージ」を表示してから、数秒後に自動転送する

両者には、それぞれ以下のメリットとデメリットがあります。


 
1. アクセスされた瞬間に自動転送する場合
ユーザがアクセスした瞬間に移転先へ自動転送する方法なら、ユーザは「転送された事実」に気付かないくらいスムーズに閲覧を継続できるメリットがあります。転送元のURLは、ブラウザの履歴にも残りません。しかし、「ウェブサイトが移転した事実」そのものに気付きにくいため、ブックマークやリンクを修正する必要性にも気付いてもらえないデメリットがあります。

2. しばらく移転メッセージを表示してから自動転送する場合
自動転送の前に移転案内ページを数秒間だけ表示する方法なら、ユーザは「ウェブサイトが移転した事実」に気付きやすいメリットがあります。しかし、案内ページを表示する分、待ち時間が発生するデメリットがあります。また、「移転案内を表示したページ」自体もブラウザの履歴に残るため、「戻る」ボタンをクリックすると再度同じ移転案内ページが表示されてしまいます。


 
どちらの転送方法が望ましい?
直接自動転送する方が望ましい

直接自動転送する方が望ましい

もし、「一時的に移転しただけ」の場合や、「旧URLをずっと維持可能」な場合(=同じドメイン内で移転する場合など)なら、前者(1)の方が親切でしょう。この場合は、自動転送した事実に気付いてもらう必要性はあまりありませんから。


 
メッセージを挟んで転送する方が望ましい

移転した旨のメッセージを挟んでから転送する方が望ましい

しかし、もし将来的に「旧URLが完全に使用不可能になる」(=ドメインを変更した場合など)なら、周知効果の高い後者(2)を採用する方が望ましいでしょう。そうすれば、リンクやブックマークを修正する必要性に気付いてもらいやすくなります。


 

自動転送(リダイレクト)する方法いろいろ

上記のような自動転送(リダイレクト)機能を実現するには、いくつかの方法があります。本記事では、以下の3つの転送方法をご紹介致します。
  • .htaccessファイルを作って一括転送する方法
  • HTMLにmeta要素(タグ)を書いて自動転送する方法
  • JavaScriptを使って自動転送する方法
それぞれのメリット・デメリットは以下の通りです。

.htaccessファイルを作って、一括自動転送(リダイレクト)機能を用意する
「.htaccess」ファイルで一括転送

「.htaccess」ファイルで一括転送

ウェブサーバの設定ファイルである「.htaccess」という特殊なファイルを作成すると、ウェブサイトへのアクセス者を指定のURLへ簡単に自動転送(リダイレクト)できます。

最大のメリットは、たった1ファイルを作るだけで、サイト内(または指定範囲)の全ページで自動転送が可能になる点です。デメリットは、特にありません。ただ、どんなサーバでも使用可能というわけではなく、無料スペースでは使えないこともあります。


 
HTMLにmeta要素を書いて、自動転送(リダイレクト)機能を用意する
HTMLのmeta要素で自動移動

HTMLのmeta要素で自動移動

HTMLソース内に、指定の書式でmeta要素を1行記述すると、アクセス者を任意のURLに自動転送できます。

メリットは、HTMLだけで実現できるので、あらゆる環境で利用可能だという点です。また、「何秒後に自動転送するか」を指定できるため、「移転メッセージを見せてから、数秒後に自動転送する」といった処理も簡単に作れます。デメリットは、自動転送したいページ1つ1つにこの記述を加えなければならないため、ページ数が多い場合には記述作業が面倒になる点です。


 
JavaScriptを使って、自動転送(リダイレクト)機能を用意する
JavaScriptで自動移動

JavaScriptで自動移動

JavaScriptを使うことでも、アクセス者を任意のURLに転送できます。

HTMLのmeta要素を使って転送する場合と同様に、自動転送したいページ1つ1つに記述を加える必要があります。しかし、「すべてのページで共通して読み込まれるJavaScriptファイル」が存在するなら、そのファイルに記述を追加することで、全ページの一括転送が可能です。「.htaccess」ファイルが使えないサーバでは、代わりにこの方法を使う手もあります。

移転先への転送方法3つ:複合して利用することも可能

それでは、次のページから、上記それぞれの記述方法を順にご紹介致します。目的やサーバ環境に合わせて、転送方法を選択して下さい。なお、どれか1つの方法しか使えないわけではありません。例えば「.htaccessファイルを使って移転メッセージを一括表示し、HTMLのmeta要素を使って指定秒数後に自動転送する」といった複合技も可能です。

※本記事は、2002年3月15日に初版を公開し、2014年5月に内容を改訂しました。記事中の一部の画面イメージは、2002年時点のものです。

【この記事の目次】
[方法1] .htaccessを使って自動転送したり一括して移転メッセージを表示させる (p.2)
[方法2] HTMLのmeta要素を使って自動転送させる (p.3)
[方法3] JavaScriptを使って自動転送させる (p.4)