今回の独自ドメインによる新サイトへのお引越しで旧サイトとなったジンドゥー(jimdofree.com)フリー版からのリダイレクトするための設定方法がそれなりに調査したり検証を行ったので忘れないようにメモしておきます。



リダイレクト方法


リダイレクトの種類

リダイレクトには以下の2種類があります。数字はHTTPのステータスコードと呼ばれるものです。他にも303や307、308もありますが主に扱うのはこの2つです。

  • 301リダイレクト(永久的リダイレクト)
  • 302リダイレクト(一時的リダイレクト)

301は永久的な移転に


「HTTP 301リダイレクト(moved permanently)」は今回のようなサイト移転時などの永続的に別なサイトへの転送に使用します。

302は一時的な転送に


それに対して「HTTP 302リダイレクト(found)」はメンテナンス中にメンテナンスサイトへの転送やモバイル向けサイトへの転送など、一時的や条件による別なサイトへの転送に使用します。

リダイレクトでも移転先が評価される


私のサイトではあまり関係ありませんが、「301リダイレクト」による転送でもGoogleなどの検索サイトは旧サイトを評価対象とせず新サイト側への評価が行われるようです。

リダイレクトの設定方法

リダイレクトを行うための設定方法は代表的なのは以下のとおり

  • .htaccessを使う
  • PHPを使う
  • html metaタグを使う
  • JavaScript」を使う

Webサーバー側で行う


サーバー側(自分のサイトのページデータがある場所)でリダイレクトを行うには「.htaccessファイル」を使う場合と「PHP」を使う場合があります。これらはサーバーの機能にてリダイレクトが行われます。
一般的なのはURLを直接書き換える「.htaccessファイル」を利用する方法です。

クライアント側(ページ上)で行う


またクライアント側(サイトを見に来た人の使用するWebブラウザ)でリダイレクトを行う方法として「html metaタグ」を使う方法(meta refresh)と「JavaScript」を使う方法があります。
これらは閲覧者のブラウザなどの機能を利用してリダイレクトが行われます。ですのでリダイレクトによる転送は閲覧者の環境に委ねられます。

ジンドゥーのヘルプは逆リダイレクトのこと


ジンドゥーのヘルプにはリダイレクトURLについて記載されていますが、これは旧サイトが別サーバーで新サイトがジンドゥーの場合のリダイレクトURL設定方法についての記載です。しかも Business プラン限定の機能のようです。



ジンドゥーではサーバー側機能は使えない


ジンドゥーを使っている人はわかると思いますが、ジンドゥーでは「.htaccessファイル」を編集する方法がありません。
ですのでサーバー機能を使うことはできず、クライアント側の機能を使ったリダイレクト設定を行う必要があります。


ジンドゥーでのリダイレクト方法


ジンドゥーでリダイレクトを行うにはページの編集メニュー「基本設定」にある「ヘッダー編集」という機能を使用します。
この機能を使うことで、ホームページ全体、または各ページのヘッダーを編集できます。






ただしジンドゥーのフリー版では「各ページ」のヘッダー編集はできませんので、「ホームページ全体」の機能を使って、1つのURLへのリダイレクトを行うか、現在のページのファイル名を識別して個別にリダイレクトを行ないます。

JavaScriptを使った方法


今回は「JavaScript」を使った方法でリダイレクトを行ないます。
ヘッダー編集に以下のコードを入力します。

<link rel="canonical" href="https://(新サイトのURL)" />
<script type="text/javascript">
//<![CDATA[
<!--
if(location.hostname=='(旧サイトのホスト名)'){
setTimeout("link()",0);
function link(){
location.href='https://(新サイトのURL)';
}
}
-->
//]]>
</script>

 

始めにある <link rel="canonical"> は検索サイトに正式な移転先URLですよと教えるためです。無くても動きます。おまじない的な感じもしますが検索サイトの評価が気になる人は入れる必要があります。


その後のJavascriptがリダイレクトの処理です。setTimeout()でリダイレクトまでの待機時間をfunction link()で新サイトのURLにアドレスを移動します。

タイムアウト値は「301リダイレクト」と同じ挙動となる0秒が推奨されます。これは少しでも滞在すると、クロールしている検索サイトが旧サイトを識別して評価してしまったり301リダイレクトではないと判断したりする可能性があるためです。


ちなみに、Javascriptはクライアント側の処理となるのでユーザ側の通信環境やPCスペックによっては瞬間的に旧サイトが表示されることがあります。これは見ている人だけが感じることなので問題ありません。


location.hostnameのif条件記述はジンドゥーの再編集(リダイレクト設定後に再度編集が必要な時など)の際に必要となりますが、ちょっとした手順が必要なだけで不要であれば条件なしでも動作します。


(新サイトのURL)には移転先のURLを入力します。「https://」だとは思いますが、違うのであればそちらも移転先URLに合わせます。

(旧サイトのホスト名)には現在のジンドゥーのホスト名を入力します。フリー版を使用しているのであれば、「(ユーザID).jimdofree.com」となります。「https://」の記述は必要ありません。

コードを入力したら「保存完了」を押すことで適用されます。


ジンドゥーではPHPとmetaタグのリダイレクトは動作しない?


「.htaccessファイル」以外に「PHP」と「html metaタグ」も確認しましたが、ヘッダー編集で「保存完了」を押すとコードが消えてしまいます。動作も確認しましたがリダイレクトは行わないようです。

「PHP」は処理がサーバ機能でもありhtmlとの順序関係もあるので、ヘッダー編集の挿入のしくみがわからずブラックボックスである以上理由は不明です。

「html metaタグ」についての理由もわかりませんがジンドゥー的にmeta refreshはスパムの常套手段でもあるので除外されているかもしれません。


リダイレクト設定後のジンドゥーの再編集には手順が必要


Javascriptのif条件記述について説明しましたが、301リダイレクトのための設定をジンドゥーに行うことで、全ページが自動的にリダイレクトされてしまい現在のページを経由した再編集は出来なくなります。
(ページ右最下端の「編集」をクリックする前にリダイレクトが行われてしまう)

このような場合には、ジンドゥーのサイトから直接ログインを行ないダッシュボードを編集する必要があります。




また、Javascriptのif条件記述を入れなかった場合にはダッシュボードの編集画面で表示されるメインページ等もリダイレクトされてしまうので以下のどちらかの手順を行ないます。

  1. ヘッダー編集にてリダイレクトを一時的に解除する
  2. ヘッダー編集を上記のコード通りにif条件記述を行ない編集時のURLの場合にはリダイレクトしないようにする

1.の場合には一時的にリダイレクトを解除しますので旧サイトの編集も確認もできます。編集後は再度リダイレクトを行うように設定する必要があります。

2.の場合はダッシュボード編集でのみ旧サイトの確認ができます。ヘッダー編集をする必要はありません。




作成日:2021/03/27
更新日: