ホームページの引っ越し~移転先に飛ばす方法~

諸他の事情によりホームページを移転する際、新しいページへ自動的に飛ぶようにするのは大事です。いきなり無くなると、見つけるのが一苦労ですから。その手順を移転歴2回の私が解説したいと思います。

スポンサーリンク

移転通知用のページを表示させる

さて、移転する際、まず考えるのがどこに移転通知用のページを作るかです。それぞれのファイルをそのままにしておき、一部のファイル(表紙や各メニューなど)に移転先を書いてもいいのですが、それだと問題があります。

それは、相変わらずそのファイルが存在するため、検索エンジンのロボットがそのファイルを見失うことが無く、検索エンジンに登録されっぱなしになってしまう事です。そのため、相変わらず古いページを見る人が沢山出てきます。出来ることなら移転先(つまり最新のページ)を見てもらいたい物。

そこで、まず移転が完全に完了したら、古いページをすべて削除します。次に、移転先のファイルを作成します。一番てっとり早いのが、http://www.○○○.ne.jp/~□□/index.htmlに作る、つまり、一番表紙にそれを持ってくるという事です。まず表紙から来る人が一番多いでしょうから、その人たちにはこれでOK

次に、各ページへ直接リンクしてきた人をどうするか、特に検索エンジン経由だと多いですよね。その場合、すでにファイルがありませんから、「HTTP 404・ファイルがありません」とエラー画面が表示されるはずです。そこで、このエラー画面をカスタマイズすることにします。

まず、一番上のディレクトリ(public_htmlなど)に.htaccess(ドットが頭に必要)と言う名前のファイルを設置します。これはホームページ用の設定ファイルです。そして、その中に以下の一行を記入します。

ErrorDocument 404 /~□□/index.html

これは、「HTTP 404エラーの時は、このファイルを表示させなさい」と言う設定です。書き方は、その表示させたいファイルのURL(http://www.○○○.ne.jp/~□□/index.html)から先頭のhttp://www.○○○.ne.jpを抜いただけ。

この設定により、もし削除したファイルを指定した場合でも、きちんと移転通知用のページを表示する事ができます。これで、ページの表示はOK。

ジャンプさせるURLを調べる方法

さて、次は移転通知用のページの書き方です。定番は、METAタグを使ってジャンプさせる方法でしょうか。これは、ファイルの<HEAD></HEAD>の間に、以下のような一文を加えると言うものです。

<META HTTP-EQUIV=”Refresh” CONTENT=”5:URL=新しいURL”>

新しいURLの部分に自動でジャンプさせたいページのURLを記入します。その前の5というのは5秒後と言う意味で、秒単位で変更できます。自動でジャンプしない可能性もあるので、リンクも記述しておけばOK。

さて、ここでジャンプさせるURLが問題になります。普通は新しいホームページの表紙に飛ばす、まぁこれでも十分なんですけど、直接ファイルを指定してきた場合、表紙からそのファイルまでたどり着く必要があります。これって結構大変なんですよね。それに、ディレクトリの構成は変えてない事も多いですから、URLの頭の部分を変えるだけで、移転先のそのファイルへのURLとなります。

そこで、JavaScriptを用いて、見たいファイルへ直接ジャンプするようにしてみました。例として、
旧URL:http://www.mars.dti.jp/~dieen/pc/mypc_spec.htm
新URL:http://www.dieen.net/pc/mypc_spec.html
とします。

最初に、ブラウザからhttp://www.mars.dti.ne.jp/~dieen/pc/mypc_spec.htmにアクセスすると、すでにファイルは削除されていますから、404エラーとなり、移転通知用のページが表示されます。

そこで、ジャンプさせるURLを調べます。JavaScriptを用いています。

<SCRIPT language=”JavaScript”>
<!–
NewURL=”http://www.dieen.net/”;
入れ替えたいURLを記入します。つまりhttp://www.mars.dti.jp/~dieen/
http://www.dieen.net/としたい訳です。
 Path=location.pathname; ここで、パス名を取り込みます。この場合は、/~dieen/pc/mypc_spec.htmlとなります。
 data=Path.split(“/”); これは、“/”で文字列を切り分けて、配列に格納しています。
data[0]= “”
data[1]=”~dieen
data[2]=”pc
data[3]=”mypc_spec.html
となります。
 i=0;
while(data[i]!=null){
i++;
}
i–;
ここで、配列の数を求めています。今回はi=3です。
 for(j=2 ; j<i ; j++){
NewURL=NewURL+data[j]+”/”;
}
ここで、フォルダ名をそれぞれ設定していきます。変数jが2から始まっているのは、data[0],data[1]は~dieenの部分なので、通常は不要です。終了条件をj<iとして、ファイル名は除いています。
 if(data[i]!=0){
File=data[i].split(“.”);
if(File[0].indexOf(“index”)!=-1){
File[1]=”.shtml”;
}
else if(File[1].indexOf(“htm”)!=-1){
File[1]=”.html”;
} else
{
File[1]=”.”+File[1];
}
NewURL=NewURL+File[0]+File[1];
}
–>
</SCRIPT>

もし、ファイル名が未入力の場合は、これ以上調べる必要がありません。

また、私の場合、ファイル名がindex*.*の場合は拡張子をshtmlにしていて、それ以外はhtmlにしているのですが、以前はhtmにしていました。そこで、“.”でファイル名を切り分けています。今回は、
File[0]= “mypc_spec“ File[1]= “htm
となります。

ファイル名がindex*.*なら拡張子はshtmlとなり、ファイル名が*.htm*なら拡張子はhtml、それ以外は変更せずにそのまま繋げる…という処理をしています。

それぞれ条件を掛け合わせて、http://www.dieen.net/pc/mypc_spec.html
が求められます。

次に、自動でジャンプするJavaScriptを書きます。

<SCRIPT language=”JavaScript”>
<!–
setTimeout(“window.location=NewURL”,10000);
–>
</SCRIPT>
このスクリプトで、10秒後NewURLに自動ジャンプします。ミリ秒単位で指定します。

あと、念のために、リンクタグもJavaScriptで表示させておきます。

<SCRIPT language=”JavaScript”>
<!–
document.write(“<A href='”+NewURL+”‘>”+NewURL+”</A>”);
–>
</SCRIPT>
これで、NewURLへのリンクを表示します。

スクリプトを埋め込み

以上のスクリプトを埋め込むと、ソースファイルは以下のようになります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type"
content="text/html; charset=Shift_JIS">
<SCRIPT language="JavaScript">
<!--
  NewURL="http://www.dieen.net/";
  Path=location.pathname;
  data=Path.split("/");
  i=0;
  while(data[i]!=null){
    i++;
  }
  i--;
  for(j=2 ; j<i ; j++){
    NewURL=NewURL+data[j]+"/";
  }
  if(data[i]!=0){
    File=data[i].split(".");
    if(File[0].indexOf("index")!=-1){
      File[1]=".shtml";
    }
    else if(File[1].indexOf("htm")!=-1){
      File[1]=".html";
    }
    else {
      File[1]="."+File[1];
    }
    NewURL=NewURL+File[0]+File[1];
  }
-->
</SCRIPT><TITLE>移転のお知らせ</TITLE>
<BASE>
</HEAD>
<BODY>
<SCRIPT language="JavaScript">
<!--
  setTimeout("window.location=NewURL",10000);
-->
</SCRIPT>
<H2 align="center">移転のお知らせ</H2>
<HR align="center" width="95%" size="5">
<BLOCKQUOTE> 当ホームページは、下記URLに移転しました。<BR>
<B>10秒後</B>に移動します。<BR>
<BR>
  移動しない場合は、お手数ですが、下記のURLを選択してくださいませ。</BLOCKQUOTE>
<P align="center"><FONT SIZE="+1">
<SCRIPT language="JavaScript">
<!--
  document.write("<A href='"+NewURL+"'>"+NewURL+"</A>");
-->
</SCRIPT>
</FONT></P>
</BODY>
</HTML>

この通りになります。8行目のNewURL=”http://www.dieen.net/“;の部分を変更すれば、大抵の場合には対応できるんじゃないかな?。

スポンサーリンク