リダイレクトとは
旧URLから新URLへ転送することをリダイレクトという
また、その移転が恒久的なのか一時的なのかを示すこともできます。この種別は、検索エンジンに対して「移転前のURLと移転先のURLのどちらを登録すれば良いのか?」を知らせる役にも立ちます。
ウェブサイトを移転した場合など、指定したURLに自動的に転送させたい
ウェブサイト全体や、特定のページにアクセスしてきたユーザを、指定のURLに自動転送したい場合があります。例えば、以下のような場合です。- ウェブサイトを引っ越して、URLが変更になった場合
- ウェブサイトの構造を改変して、一部のファイル名やディレクトリ名が変更になった場合
- URLにwwwを付けずにアクセスしてきたユーザを、www付きのURLに移動させたい場合
※なお、ウェブサイトをHTTPS化したために、「http://~」のURLから「https://~」のURLにリダイレクトしたい場合の方法は、記事「SSL証明書を取得してHTTPS化する設定方法」で解説していますので、別途ご参照下さい。
自動転送(リダイレクト)のタイミング2種類
自動転送(リダイレクト)方法2種類
- アクセスされた瞬間に自動転送する
- しばらくは「移転した旨のメッセージ」を表示してから、数秒後に自動転送する
両者には、それぞれ以下のメリットとデメリットがあります。
ユーザがアクセスした瞬間に移転先へ自動転送する方法なら、ユーザは「転送された事実」に気付かないくらいスムーズに閲覧を継続できるメリットがあります。転送元のURLは、ブラウザの履歴にも残りません。しかし、「ウェブサイトが移転した事実」そのものに気付きにくいため、ブックマークやリンクを修正する必要性にも気付いてもらえないデメリットがあります。
2. しばらく移転メッセージを表示してから自動転送する場合:
自動転送の前に移転案内ページを数秒間だけ表示する方法なら、ユーザは「ウェブサイトが移転した事実」に気付きやすいメリットがあります。しかし、案内ページを表示する分、待ち時間が発生するデメリットがあります。また、「移転案内を表示したページ」自体もブラウザの履歴に残るため、「戻る」ボタンをクリックすると再度同じ移転案内ページが表示されてしまいます。
直接自動転送する方が望ましい
もし、一時的に移転しただけの場合や、旧URLをずっと維持可能な場合(=同じドメイン内で移転する場合など)なら、前者(1)の方が親切でしょう。この場合は、自動転送した事実に気付いてもらう必要性はあまりありませんから。
移転した旨のメッセージを挟んでから転送する方が望ましい
自動転送(リダイレクト)する方法3種類
上記のような自動転送機能を実現するには、いくつかの方法があります。本記事では、以下の3つの転送方法をご紹介いたします。- .htaccessファイルを作って一括転送する方法
- HTMLにmeta要素(タグ)を書いて自動転送する方法
- JavaScriptを使って自動転送する方法
それぞれのメリット・デメリットは以下の通りです。
■方法(1) .htaccessファイルを作って一括自動転送(リダイレクト)機能を用意する
「.htaccess」ファイルで一括転送
ウェブサーバの設定ファイルである「.htaccess」という特殊なファイルを作成すると、ウェブサイトへのアクセス者を指定のURLへ簡単に自動転送(リダイレクト)できます。
最大のメリットは、たった1ファイルを作るだけで、サイト内(または指定範囲)の全ページで自動転送が可能になる点です。デメリットは、特にありません。ただ、どんなサーバでも使用可能というわけではなく、無料スペースでは使えないこともあります。
HTMLのmeta要素で自動移動
HTMLソース内に、指定の書式でmeta要素を1行記述すると、アクセス者を任意のURLに自動転送できます。
メリットは、HTMLだけで実現できるので、あらゆる環境で利用可能だという点です。また、「何秒後に自動転送するか」を指定できるため、「移転メッセージを見せてから、数秒後に自動転送する」といった処理も簡単に作れます。デメリットは、自動転送したいページ1つ1つにこの記述を加えなければならないため、ページ数が多い場合には記述作業が面倒になる点です。
JavaScriptで自動移動
JavaScriptを使うことでも、アクセス者を任意のURLに転送できます。
HTMLのmeta要素を使って転送する場合と同様に、自動転送したいページ1つ1つに記述を加える必要があります。しかし、「すべてのページで共通して読み込まれるJavaScriptファイル」が存在するなら、そのファイルに記述を追加することで、全ページの一括転送が可能です。「.htaccess」ファイルが使えないサーバでは、代わりにこの方法を使う手もあります。
移転先への転送方法3つは、複合して利用することも可能
次のページから、上記それぞれのリダイレクト方法を順にご紹介いたします。目的やサーバ環境に合わせて選択して下さい。なお、どれか1つの方法しか使えないわけではありません。例えば「.htaccessファイルを使って移転メッセージを一括表示し、HTMLのmeta要素を使って指定秒数後に自動転送する」といった組み合わせも可能です。【この記事の目次】
- 方法(1) .htaccessを使って自動転送する方法・移転案内を一括表示する方法 (p.2)
- 方法(2) HTMLのmeta要素を使って自動転送する方法 (p.3)
- 方法(3) JavaScriptを使って自動転送する方法 (p.4)