URLの変わるサイト移転をした場合に、旧URLから新URLに転送させる方法です。
調べれば簡単にわかることですが、友人知人から度々聞かれるので、忘備録として残しておきます。
ここでは、METAタグを利用する方法と、.htaccessファイルを使って転送させる方法を記載してます。
利用しているサーバーによっては、.htaccessファイルを置けない(使えない?)ところもあるかもしれませんが、そういう場合にはMETAタグを利用する方法でやってみて下さいね。
ちなみに.htaccessファイルを利用すると、見る人がアクセス後に待ち時間無しで転送されるという利点があります。
【1】METAタグを使った転送方法
旧サイトのページ内の<HEAD>~</HEAD>に囲まれてる部分に、以下内容を記載する。
<META HTTP-EQUIV=”refresh” content=”0; URL=(移転先のURL)“>
content=数字の部分は転送するまでの秒数になります。
ちなみに、転送するまでの時間は、即時(0秒)だと301リダイレクト(恒久的な移転)となり、一定の時間を設定している場合は302リダイレクト(一時的な移転)という扱いになります。
301リダイレクトの場合は、検索エンジンのインデックス上のURLも新しいものに更新されますが、302リダイレクトの場合は旧サイトのまま更新されることはありません。
ところで、301と302ってどんな違いなのさ?って聞かれることがありますが、簡単に言っちゃえば、301は完全な移転なので『元の住居に戻る予定が無いから住民票も移動するよ』って場合で、302はあくまでも「一時的」な移転ってことなので『2~3ヶ月位実家に里帰りするから郵便物はとりあえず実家に転送させとくけど、短期間なんだから住民票までは移動しないよ』って感じです。
【2】.htaccessファイルを使った転送方法
.htaccessファイルは、ひとまずhtaccess.txtで保存して、サーバーアップロード後に.htaccessとリネームすると良いです。(そのまま転送しても問題ない環境の場合もありますが、エラーが出る可能性もありますので…)
また、.htaccessファイルは、.htaccessのあるフォルダ以下の全フォルダと全ファイルに影響します。
サーバーにアップロードする場合は、このことに注意して、必要な場所にアップして下さい。
なお、以下説明の「Redirect permanent」の部分を「Redirect temp」に変更すると、302リダイレクト(一時的な移転)の指定になります。
Redirect permanentは301リダイレクト(恒久的な移転)の指定です。
(301リダイレクトと302リダイレクトの違いって何ぞや?…って方は、さっきのMETAタグでの転送方法部分に書いてあります)
※httpsの部分のhのみ大文字で記載してますが、実際には半角で記載して下さい。
≪Ⅰ≫旧URLと新URLのフォルダ&ファイル名のページ構成が同じ場合
例1 : [旧URL] https://abc.com/ ⇒ [新URL] https://xyz.com/ へ転送する場合。
.htaccessファイルに以下内容を記載します。
Redirect permanent / https://xyz.com/
これで、https://abc.com/123.htmlにアクセスがあれば、https://xyz.com/123.htmlに…
https://abc.com/456.htmlにアクセスがあれば、https://xyz.com/456.htmlに…
https://abc.com/yyy/zzz.htmlにアクセスがあれば、https://xyz.com/yyy/zzz.htmlに転送されます。
例2 : [旧URL] https://abc.com/def/ ⇒ [新URL] https://xyz.com/ へ転送する。
.htaccessファイルに以下内容を記載します。
Redirect permanent /def/ https://xyz.com/
これで、https://abc.com/def/123.htmlにアクセスがあれば、https://xyz.com/123.htmlに転送されます。
[Redirect permanent]の部分は、[redirect 301]にしてもOKです。
≪Ⅱ≫旧URLと新URLで違うファイル名に転送したい場合
例 : [旧URL] https://abc.com/def/12345.html ⇒ [新URL] https://xyz.com/abcde.html へ転送する。
.htaccessファイルに以下内容を記載します。
Redirect permanent /def/12345.html https://xyz.com/abcde.html
1行で1つの転送指定になるので、複数ファイルの転送を指定したい場合は、
Redirect permanent /def/12345.html https://xyz.com/abcde.html
Redirect permanent /ghi/12345.html https://xyz.com/zzz/abcde.html
Redirect permanent /jkl/67890.html https://xyz.com/yyy/fghij.html
Redirect permanent /mno/ https://xyz.com/mno/
Redirect permanent /pqr/67890.html https://xyz.com/vvv/fghij.html
…と記載します。
≪Ⅲ≫旧URLのフォルダ名やファイル名は問わず、新URLは全てトップページに転送したい場合
例 : 旧サイト(https://abc.com/)へのアクセスは全て、新URL(https://xyz.com/)に転送する場合。
.htaccessファイルに以下内容を記載します。
RedirectMatch 301 .* https://xyz.com/
これで、https://abc.com/ にアクセスすると、https://xyz.com/に…
https://abc.com/def/ にアクセスしても、https://xyz.com/に…
https://abc.com/ghijk/123/xyz.html にアクセスしても、https://xyz.com/に転送されます。
サイトの構成が変わって更にファイル数も多い場合には、1つ1つ転送指定していくのはとても大変なので、トップページ等へ一括して転送指定した方が楽です(´・∀・`)
ただし、この方法は同じドメインで設定してしまうと無限ループに陥ってしまいますので注意して下さい。
別のドメインのURLへ転送する場合に使用してくださいね。