リダイレクト (redirect)とは?意味・設定方法を5分で解説

リダイレクト(redirect)はウェブページにアクセスした際、他のページに自動的に遷移させる技術のことです。

普段利用されているウェブページで、以下のような経験はありませんか?

・数秒後に別のページに遷移した。
・アクセスしたページと別のページが表示された。

これらはウェブサイトにリダイレクトの設定がかかっている為に発生しています。
サイトを移転した時や、メンテナンスを行っている時、一時的に別のページへ転送できたら便利ですよね。
利用者さんにとっても、使いやすいウェブサイトにもなりますよ!
この記事ではリダイレクトの使い方と、設定方法についてご紹介いたします。

リダイレクトとは?意味を解説

リダイレクト(redirect)とは、ウェブサイトの閲覧時に、サイト利用者がアクセスしたURLとは別のURLに転送する仕組みのことを言います。
「URLリダイレクト」や「HTTPリダイレクト」と呼ばれる場合もあります。
リダイレクト 意味

ウェブページを閲覧する際は、[http://]から始まるURLを入力しますよね。
このHTTPとは、インターネットでウェブページを閲覧する為のプロトコル(通信ルール)で、ウェブサイトと通信を行った結果は[ステータスコード]という3桁の数値で返却される仕組みになっています。

 

 

ステータスコード 状態
1xx系 処理中、通信中を表すステータスコード
2xx系 通信成功を表すステータスコード
3xx系 リダイレクトを表すステータスコード
4xx系 通信失敗を表すステータスコード
5xx系 ウェブサイトに問題があることを表すステータスコード

 

ステータスコードにはリダイレクト以外にも、通信成功時、失敗時などを示すコードが存在します。
例えば、ウェブページが見つからなかった場合や閉鎖した場合に「404エラー」を見かけたことはありませんか?
「404」もステータスコードの一種で、最初の一桁が4で始まる「通信が失敗した」という状態です。

404エラーはウェブサイトが表示しているわけではなく、皆さんがウェブページを閲覧する時利用している「ウェブブラウザ」がステータスコードから失敗と判断して表示しているんですよ。

リダイレクトは「3xx系」のステータスコードが返却された状態です。
ブラウザはこれを受け取ると「別のページを表示しなければならない」と解釈し、指定されたウェブページへ再度接続を行うようになっています。
リダイレクトという言葉は、ウェブ運用者にとって以下のような広域の意味で利用されています。

・利用者が見たいサイトとは別サイトを見せるための仕組み
・運用者が見せたいページを見せるための指示や設定

リダイレクトにも種類がある

先述した「ステータスコード」ですが、次の挙動を決めています。
ブラウザへのリダイレクト指示にはいくつか種類がありますので、一般的に利用されるリダイレクトコードをご説明します。

 

 

ステータスコード コードの名称 説明
300 Multiple Choices 1つのURLに2つ以上のページがある。

ブラウザへ、どちらに接続するか選択する画面を表示する。

例)https://www.w3.org/TR/xhtml11/DTD/xhtml11.html

301 Moved Permanently 恒久的に移動した。

ウェブサイトの移転やURLを変更した場合に利用され、ブラウザは指示された別のURLへ接続する。

302 Found ページを発見した。

ウェブサイトは存在するが、一時的に別のページを見せたい場合に利用され、ブラウザは指示された別のURLへ接続する。

307 Temporary Redirect 一時的リダイレクト。

「302」と同意義。

※「302」の方が古く、規定外の利用方法が増えた為に「307」として再定義された。

308 Permanent Redirect 恒久的リダイレクト。

「301」と同意義。

※「301」の方が古く、規定外の利用方法が増えた為に「308」として再定義された。

 

ウェブサイトを見ているだけではリダイレクトの種類を中々意識しないですよね。
しかし、ウェブの運用者の立場になると「利用者にどうウェブページを見せたいのか」に関わる「指示」として設定が必要になってきます。

リダイレクトで一番よく利用されるのはウェブサイトの移転です。
ウェブサイト側が「URLが変わったので、旧URLへアクセスした人は新URLへアクセスし直すように」と指示したいとします。
移転は「元に戻す必要がない」「恒久的」な変更なので、ブラウザに「301」または「308」のステータスコードを返却するルールになっています。

リダイレクトのSEO効果はある?

リダイレクトはSEOにとっても重要な役割があります。
SEO(Search Engine Optimization)は「検索エンジン最適化」という意味で、GoogleやYahooの検索結果が、検索者にとって「適した結果になっているか」「見やすいウェブページになっているか」を評価する指標です。

先述で、ウェブサイトを移転したときにリダイレクトを用いることが多いとご説明しましたが、しないといけない事なのでしょうか?
古いウェブサイトが残っていても、新しいウェブサイトが稼働していれば問題ないようにも思います。

これをSEOの観点で見ると「同じページが複数ある」「どちらが正式なサイトがわからない」為、GoogleやYahooからの最適化されていないと評価され、検索結果にでにくくなってしまいます。

また、移転前と移転後のURLが同じサイトであると認識されないと、これまでウェブサイトが受けていた評価(検索結果への出やすさ)がリセットされてしまうデメリットもあるのです。

ウェブサイトの移転以外にも、リダイレクトがよく利用されるシーンがあります。
例えば、よく見かけるURLには以下のようなパターンがありますよね。

・https://www.yourtestsites.com/
・https://yourtestsites.com/

[www]がついているURL、ついていないURL共に同じウェブページへ遷移します。

・https://yourtestsites.com/
・https://yourtestsites.com/index.html

[index.html]があるURL、ないURLも同じウェブページへ遷移します。

このようにばらつきがあるURLにアクセスされた場合、全て[https://yourtestsites.com/]に再接続させるようにリダイレクトを設定することを「URLの正規化」と呼び、SEO対策に有用とされています。

※SEO評価方法は検索エンジンにより若干の違いがあります。
気になる方はGoogleのガイドラインなどをご参考にしてみてください。
→検索エンジン最適化(SEO)スターター ガイド
https://support.google.com/webmasters/answer/7451184?hl=ja

リダイレクトをかけるべき状況

リダイレクトには様々なステータスコード(ブラウザへの指示)があります。
具体的に、どのような状況でどのリダイレクトをかけるべきなのか一例を紹介させて頂きます。

■ウェブサイトの移転時
旧URLへアクセスされたら、新URLへのリダイレクトが必要です。
「308(恒久的)」リダイレクトで利用者さんへ移転した事をお知らせしましょう。

■キャンペーン時
ウェブサイトでキャンペーンを行っているなど、一時的に別のウェブサイトへ遷移させたい時にリダイレクトが有用です。
「307(一時的)」リダイレクトを行うことで、トップページをまるごと書き換える必要がなくなります。

■メンテナンス時
ウェブサイトのリニューアルや、コンテンツの置き換えを行う時、メンテナンスページにリダイレクトさせると利用者さんにわかりやすいです。
「307(一時的)」リダイレクトで「ただいまメンテナンス中です」というページを表示します。

■障害発生時
不慮の事故や、アクセス過多でウェブサイトが動かなくなった時、正常に動くページへリダイレクトさせることで損害を回避できます。
「307(一時的)」リダイレクトで「現在障害の復旧中です」といったメッセージを表示します。

■URLの正規化、統一したい時
URLの[www]有無、[index.html]有無、末尾の[/]スラッシュの有無等、利用者が複数のURLに接続してくるケースで、URLを統一できます。
「308(恒久的)」リダイレクトを行うことで、SEOの対策になります。

■HTTPS化、SSL対策後
HTTPプロトコル…[http://]から始まるセキュリティ面が弱いURLへアクセスされた際、HTTPSプロトコル…[https://]から始まるセキュリティ面に強いURLへリダイレクトを行わせることが推奨されます。
「308(恒久的)」リダイレクトを行うことで、利用者さんは安全にウェブサイトへアクセスできます。

■HSTS解除、非SSL化時
HSTS…[https://]から始まるセキュリティ面に強いURLへ強制的に接続させる設定を解除したい時、リダイレクトさせる必要があります。
「308(恒久的)」リダイレクトで、[https://]から始まるページが無いことをお知らせします。

■不正アクセス対策
他人のユーザーページや、ウェブ管理者用のページに接続されてしまった場合、不正を検知したらリダイレクトでエラーページを表示しましょう。
「308(恒久的)」リダイレクトで、「アクセス権限がありません」など、ページを見せられない旨を表示します。

■リクエスト改ざん対策
通販サイトの入力フォームを改ざんされたり、ツールを使ってウェブサイトに接続されてしまった場合に、改ざんを検知したらリダイレクトで警告を表示しましょう。
「308(恒久的)」リダイレクトで、「エラーが発生しました」などのメッセージを表示してください。

リダイレクト設定方法を具体的に解説

実際にどのようにリダイレクトを設定するのかをご紹介します。
リダイレクトの設定方法には以下の種類があります。

・httpd.conf等 …サーバーの設定
サーバー(ウェブサイトが配置されたコンピュータ)の設定ごと変更する。
※レンタルサーバーでは設定できない場合もあります。

・.htaccess …ファイルでの設定
ウェブサイトを制御するためのファイルを配置する。

・meta ...ウェブページ内での設定
ウェブページのHTMLファイル内にmetaタグを記載する。
※一部の検索エンジンでは推奨されていません。

今回はウェブサイトの運用者に推奨される[.htaccess]ファイルでのリダイレクトについて記載いたします。

※リダイレクトの設定を誤ると、ウェブサイトへアクセスできなくなる可能性があります。
試される際はよくご確認の上、自己責任で実施されるようお願いいたします。

リダイレクトを設定するサイトの想定

・既にウェブサイトを運用しており、デザインリニューアルの為にメンテナンスを行おうとしています。
・新しい画像やHTMLファイルの配置が完了するまで、閲覧者にはトップ画面を見せないようにしたいので、メンテナンス画面に置き換えることにしました。

トップ画面にアクセスした際、メンテナンス画面を表示するようにリダイレクト設定を行います。
運用中のウェブサイト
http://testmyblog.ml/index.html
リダイレクト 設定

■リダイレクト先のメンテナンス画面
http://testmyblog.ml/maintenance.html
リダイレクト先 画面

トップ画面とメンテナンス画面に使うファイルは、既にサーバーへアップロード済みの所からご説明を開始します。

リダイレクトの設定方法

レンタルサーバーの管理画面にログインし[トップ画面が配置されているフォルダ]を表示して下さい。
今回の場合は[index.html]と同じフォルダです。
リダイレクト index.html

フォルダ内に[.htaccess]というファイルを作成します。
※.htaccessはフォルダ内のアクセス方法を制御する設定ファイルです。
.htaccess フォルダ

※パソコンでファイルを作成し、FTPクライアント等を使いアップロードしても構いません。
その際、[.]ドットから始まるファイルは表示されないことがありますので、ファイルの表示設定を変更してください。

Windowsの場合は[フォルダーオプション]を開き、[隠しファイル、隠しフォルダー、および隠しドライブを表示する]を有効にします。
フォルダーオプション
隠しファイル、隠しフォルダー、および隠しドライブを表示する

作成した[.htaccess]ファイルを編集します。
ファイルを開き以下を入力して下さい。

 

Redirect 301 /index.html /maintenance.html

 

左から順に以下のような構成でリダイレクトを指定しています。

 

 

Redirect リダイレクトを行うという命令文です。
301 ステータスコード。一時的なリダイレクトを指示します。
/index.html リダイレクトの対象となるファイルを指定します。
/maintenance.html リダイレクト先となるファイルを指定します。

 

編集が完了したら保存してください。
※パソコンでファイルを作った方はアップロードしてください。

リダイレクト対象の[http://testmyblog.ml/index.html]にアクセスしてみます。
リダイレクト対象

リダイレクトが有効になっていると、[http://testmyblog.ml/maintenance.html]画面が表示されます。
只今メンテナンス中です。

画面に「サーバーエラー」と表示されたり、「リダイレクトが繰り返されています」というメッセージが表示される場合は、[.htaccess]ファイルの記述が間違っている可能性があります。

・利用しているテキストエディタによって不要な文字が入ってしまうことがあります。
「?」や「・ソ」のような文字が入っていないか確認してください。
テキストエディタを変更すると解消されることがあります。

・ファイルを配置しているフォルダが正しいか確認して下さい。

・[.htaccess]ファイルに記載したファイル名が正しいか確認してください。

・[.htaccess]ファイルはとても厳密なファイルです。
余分な改行や半角スペースが入っていないか確認してください。

今回はレンタルサーバーの同階層にあるファイルへリダイレクトを行わせる手順をご説明しました。
別階層にあるファイルや別ドメインのファイルへリダイレクトさせることもできます。
[.htaccess]ファイルの場所に対して、リダイレクト元のファイルやリダイレクト先のファイルの場所を正しく記述する事がポイントです。

■同階層にあるファイル
/ …ルート(一番上の階層)
├ .htaccess
├ index.html
└ maintenance.html

.htaccessの記述

Redirect 301 /index.html /maintenance.html

■別階層にあるファイル
/ …ルート(一番上の階層)
├ .htaccess
├ index.html
└ content
└maintenance.html

.htaccessの記述

Redirect 301 /index.html /content/maintenance.html

■別ドメインにあるファイル
/ …ルート(一番上の階層)
├ .htaccess
└ index.html

/ …別ドメイン(anotherserverdmain.aaa.bbb)のルート
└ maintenance.html

.htaccessの記述

Redirect 301 /index.html http://anotherserverdmain.aaa.bbb/maintenance.html

リダイレクト設定の種類

[.htaccess]ファイルに[Redirect]指示を記述することは、最も簡単な設定方法です。
他にもサイト全体にリダイレクトをかける、特定の利用者のみリダイレクトをかける、他のステータスコードを指定する等、細かい設定を付加することもできます。

設定ファイルの記述方法には正規表現(※)やサーバー変数(※)といった専門知識が必要になりますので、気になる方はW3C(ウェブ標準機構)のウェブサイトを参考にしてみてください。

W3C .htaccess
https://w3g.jp/others/htaccess/

※正規表現…一致する文字の条件やパターンを指定する書き方
※サーバー変数…ドメインやフォルダ名等、サーバーによって異なる値を示す文字

まとめ

リダイレクトの知識は、ウェブの運用中に必ず必要になってきます。
別ページへ遷移させる方法に留まらず、SEOやウェブサイトの使いやすさに直結する部分です。
メンテナンスやリニューアル、サイトの移転はどんなサイトにも発生しますので、その日に備えて習得しておけば損はありませんよ!

  • .htaccessとは
    .htaccessとは?できることと設定手順を初心者でもわかるように解説
  • リダイレクト redirect
    リダイレクト (redirect)とは?意味・設定方法を5分で解説
  • ネームサーバー DNS
    ネームサーバー(DNSサーバー)とは?意味と設定方法
  • USENスピードテスト
    usenスピードテストの"級"の種類やドラゴン級とは?使い方や目安を解説
  • 「Bluetooth」とは?Wi-Fiとの違いや製品・接続方法まで完全ガイド
  • fast.com
    「Fast.com」でインターネットの通信速度を計測しよう
おすすめの記事