現在位置: Top/ホームページの引っ越しスクリプト

ホームページの引っ越しスクリプト

.htaccessが使える場合

これは結構簡単です。
.htaccessに

ErrorDocument 403 /フルパス/error.htm
ErrorDocument 404 /フルパス/error.htm

と、それに対応したerror.htmに

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=EUC-JP" />
<meta http-equiv="content-language" content="ja" />
<meta name="robots" content="index,follow" />
<title>PAGETITLE</title>
<META HTTP-EQUIV="refresh" CONTENT="10; url=NEWPAGE">
</head>
<body>

<H1>PAGETITLE</H1>
<center>
このサイトは移動しました。<br>
<br>
<a href="NEWPAGE" target="_top">NEWPAGE</a><br><br>
10秒後に自動的にジャンプします。<br><br>
<a href="javascript:history.back()">戻る</a>

</center>

</body>
</html>

と書いておけば、新しいサイトのアドレスにジャンプします。

.htaccessが使えない、または、個別のページにジャンプさせたい。

.htaccessが使えない場合は、一つ一つのHTMLファイルに上記のerror.htmの内容を書き込んだファイルを用意しなければなりません。
あるいは、新しいサイトの同じファイルにジャンプしてほしいときは、一つ一つのファイルにジャンプ先のURLを記述しなければなりません。
これを一括処理したいと思います。

  1. ディレクトリ構造をそのままに/tmp/htmlにコピーします。
    内容は書き換わるので、元のファイルで実行しないでください。
    なお、HTMLファイル以外は削除しておいてください。
  2. jump_source.htmを用意します。
    内容は、上記のerror.htmと同じものです。
  3. 次に下記のスクリプトを用意します。make_jump_page.shとします。
    #!/bin/bash
    
    CONVERT_HOME="/tmp/html"
    SOURCE_FILE="/tmp/jump_source.htm"
    NEW_SITE_URL="http://www.xxxx.com"
    
    for f in `find $CONVERT_HOME`
    do
      if [ -f "$f" ] ; then
        echo $f
        cp -f $SOURCE_FILE $f
        sed -e "s#NEWPAGE#$f#g" "$f" > "$f"_tmp
        mv "$f"_tmp "$f"
        sed -e "s#$CONVERT_HOME#$NEW_SITE_URL#g" "$f" > "$f"_tmp
        mv "$f"_tmp "$f"
      fi
    done
    
    exit 0
  4. これを実行すると/tmp/html以下のファイルの内容がjump_source.htmの内容になります。
    それだけではなく、NEWPAGEという文字列が新しいサイトのURLに置き換わります。
  5. 新しく書き換えたファイルをそのまま古いサイトにアップロードし、アクセスすると自動的に新しいサイトの同じファイルにアクセスするようになります。

PHPで書かれている場合

PHPの場合は、