301リダイレクトについて、必要性と設定手順をまとめてみたエンジニアの転職情報サイト現役のjavaエンジニアが運営する転職情報サイトです。更新日:2022-10-16301リダイレクトについて、必要性と設定手順をまとめてみた「301リダイレクト」とは・・・サイトの移設(ドメインの変更)や、ページのURLを変更する場合に、変更前のURLから変更後のURLへ、ユーザーと検索エンジンを、誘導(転送)するための仕組みになります。※「ドメイン」についてはこちらで解説しています→ドメインとは?2分で「ドメイン」を理解するためのまとめ記事ユーザーを対象に考えたら、分かりやすいと思います。サイトを別のドメインへ移設した場合、この場合でも移設前のサイトは、検索エンジンで検索したら普通に表示されます(移設前のサイトが、検索エンジンに登録されている。移設前のサイトを削除していない場合)なので、ユーザーは検索エンジンを介して普通に移設前のサイトへアクセスできるわけですね。公開されているというだけで、現在は運営されていないサイトだとしても、、、このままの状態だと、ユーザーに対して不親切ですし、サイトの運営側もせっかくユーザーが訪れてくれるなら、新しい方のサイト(ドメイン)へ訪問してほしいですよね。このような時に、「301リダイレクト」を利用するのです。すれば、移設前のサイトへ訪れた訪問者を、新しいサイトへ誘導(転送)する事ができますから。これが、基本的な「301リダイレクト」の役割になります。検索エンジンに対しても「301リダイレクト」は重要な役割を持ちます。今回の記事では、その役割についてと、実際に「301リダイレクト」を設定する手順について解説していきます。以下、目次になります。上述している通り、「301リダイレクト」は、サイトを移設した時や、ページのURLを変更した時などに必要となる仕組みで、ちゃんとユーザーを「新しいサイト(URL)」へ誘導(転送)するのが、役割の1つとなります。一つ重要なのが「検索エンジン」に対しての役割です。移設前のサイトの「A」というページが、検索エンジンで上位に表示されていたとします。新しいサイトでも、この「A」ページの代わりとなるページ(「B」ページとします)を作成し公開しました。コンテンツ内容は全く一緒なのにも関わらず、新しい方の「B」ページは全く上位に表示されません。そりゃそうですよね、検索エンジンは「Aページ」と「Bページ」を全く別物として扱いますし、「評価」も全く違います。※ここでいう「評価」とは、被リンクやPageRank、ドメインの運用年数等の、SEO的に重要な要素への評価の事です。「Aページ」は他のサイトからの被リンクがたくさん付いていて、ページランク(PageRank)が高かったとしても、新たに作られた「B」ページは、(検索エンジンから)別物として扱われるので、これらの評価は消失しているという事です。※「SEO」については、こちらで詳しく解説しています→SEO対策とはですが、これらの評価を受け継ぐようにしてくれるのが「301リダイレクト」になるのです。移設前のサイトが、検索エンジンからの評価が高ければ高いほど、「301リダイレクト」は必須となります。サイト内に重複ページがある場合も、この「301リダイレクト」は有用です。下記のように「WWWのあり・なし」ドメインがあって、コンテンツは全く一緒だったとします。・http://www.viral-community.com/・https://viral-community.com/この場合、検索エンジンは「URL」が違うので、別物として扱います。SEO的に重要な要素(被リンク等)も、それぞれで独立したものとして扱われます。要は、同じコンテンツなのに、検索エンジンからの評価は2つに分散されるわけですね。評価が分散されるということは、それだけ上位表示されにくい状態という事です。SEO的にいえば非常に損をしている状態といえる訳ですね。「301リダイレクト」を利用すれば、この状態も改善してくれます。それは、どちらか一方を「メインのURL」として、メインじゃないURLから、メインのURLへ「301リダイレクト」をすれば、検索エンジンからの評価は、「メインのURL」へ統一化されます。これで、サイト内に重複しているコンテンツがあり、SEO的に不利な状態になっていたとしても、改善する事ができます。以上が、「301リダイレクト」の役割になります。「302リダイレクト」も、301リダイレクトと全く同じように利用することができますが、検索エンジンの解釈が下記のように異なっています。・「301リダイレクト」:恒久的な転送なので、一時的に転送する場合以外は、「301リダイレクト」を利用するにようにしましょう。「301リダイレクト」を利用しても、イイね!やTweet等のソーシャルメディアでのシェアカウントはリセットされる上述で、検索エンジンからの評価(被リンクやPageRank、ドメインの運用年数)は引き継がれる事を解説しましたが、ソーシャルメディアでのシェアカウントについては、引き継がれないので注意してください。当章では、具体的に「301リダイレクト」の設定手順について解説していきます。設定するにあたって、いくつかの前提条件があります(下記)Webサーバーに「Apache(アパッチ)」を利用している「.htaccess」が利用できる環境である「mod_Rewrite」という機能を利用できるWebサーバー(Apache)である(こちらは、必須条件ではありません)※これらの条件は、「.htaccess」に301リダイレクトの設定をする場合です。「PHP」による301リダイレクトの設定の際は、これらの条件は必要ありません(後述しています)上記に挙げている条件(一つ目と二つ目は必須)を満たせてないと、「.htaccess」による301リダイレクトを設定できませんので、注意してください。「mod_Rewrite」が利用できる場合の設定手順まず、「●●●.htaccess」という名前のファイルを作成してください(下図例)次に、そのファイルを「メモ帳」などのエディタで開いてください(下図例)ファイルをエディタで開いたら、次は「301リダイレクトの設定」を記述していきます。以下に、シチュエーション(状況)や、用途(やりたい事)ごとの記述例をまとめていますので、こちらを参考に記述していってください。[R=301,L]上記は、「old.html」にアクセスしたら、「http://www.example.com/new.html」へ301リダイレクトする設定です。※上記は、「.htaccessファイル」が、「old.html」と同じディレクトリ内にある事が前提です。ディレクトリ」へ「301リダイレクト」する設定です。ディレクトリ」の下層ページURLは同じである事が前提です。ディレクトリ」と同じ階層にある事、かつ「new」ディレクトリが、ルートディレクトリ内にある事が前提です。[R=301,L]上記は、「example.com」ドメインにアクセスしたら、「www.example.com」ドメインへ「301リダイレクト」する設定です。※「wwwあり・なしドメイン」それぞれの下層ページURLは、同じである事が前提です。「.htaccessファイル」が、(ドメインの)ルートディレクトリ内にある事が前提です。[R=301,L]上記は、「http://example.com/index.html」にアクセスしたら、「http://example.com/」へ「301リダイレクト」する設定です。※「.htaccessファイル」が、「index.html」と同じ階層(通常はルートディレクトリ内)にある事が前提です。[R=301,L]上記は、「old.com」ドメインにアクセスしたら、「new.com」ドメインへ「301リダイレクト」する設定です。※「.htaccessファイル」が、(「old.com」ドメインの)ルートディレクトリ内にある事が前提です。[R=301,L]上記は、「old-url」ドメイン内の「old-dir」ディレクトリ以下にアクセスした場合は、転送はされず、それ以外のディレクトリ(又はファイル)にアクセスした場合は、「http://new-url.com/」へ「301リダイレクト」する設定です。※「.htaccessファイル」が、(「old-url」ドメインの)ルートディレクトリ内にある事が前提です。”●●●”を消して、ファイル名を「.htaccess」に変更してください(下図参考)以上です。これで、設定は完了なので、ちゃんと「301リダイレクト」されているかの確認を行ってください。次は、「mod_Rewrite」を利用しない場合の設定手順の解説です。上述している「mod_Rewrite」が利用できる場合の設定手順と、途中までは同じです。具体的には、「●●●.htaccess」を作成して、エディタで開くとこまでは一緒です。違うのは、「●●●.htaccess」への記載内容です。以下に、シチュエーション(状況)や、用途(やりたい事)ごとの記述例をまとめていますので、こちらを参考に記述していってください。http://www.example.com/doc/new.html上記は、「old.html」にアクセスしたら、「http://www.example.com/doc/new.html」へ301リダイレクトする設定です。※「.htaccessファイル」が、(サイトの)ルートディレクトリ内にある事が前提です。ディレクトリ」へ「301リダイレクト」する設定です。ディレクトリ」の下層ページURLは同じである事と、「.htaccessファイル」が、ルートディレクトリにある事が前提です。http://www.new.com/上記は、移転前のドメイン(仮に「www.old.com」とする)にアクセスしたら、「www.new.com/」ドメインへ「301リダイレクト」する設定です。※「.htaccessファイル」が、(「www.old.com」ドメインの)ルートディレクトリ内にある事が前提です。http://example.com/上記は、「www.example.com」ドメインにアクセスしたら、「example.com」ドメインへ「301リダイレクト」する設定です。※「wwwあり・なしドメイン」のルートディレクトリが同じ場所。それぞれの下層ページURLは、同じである事が前提です。「.htaccessファイル」が、(ドメインの)ルートディレクトリ内にある事が前提です。利用できる場合の設定手順」と同じになります(見ておいてください)設定が完了したら、ちゃんと「301リダイレクト」されているかの確認をしておきましょう。当項目では、「.htaccess」を利用せずに、「PHP」を利用して301リダイレクトをおこなう手順を解説していきます。条件としては、「PHP」が利用できる環境であることと、転送元のページが「PHPファイル」で構成されている必要があります。この条件が満たされていれば、あとの手順は簡単で、該当の「PHPファイル」に下記を記述するだけです。);?>これで、上記を記述しているページにアクセスがあった場合、「http://example.com/new.html」へ301リダイレクトされます。まとめ今回の記事では、「301リダイレクト」について、必要性と設定手順を解説してきました。ドメインの移転や、サイト内に重複コンテンツがある場合、基本的には「301リダイレクト」を使う事を推奨します。「301リダイレクト」が使えない場合は、代替の手段もいくつかあります。コメントをキャンセルメールアドレスが公開されることはありません。~未経験者へのおすすめも。~未経験者についても。~求人情報の見方や注意点も。