差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
web:page_move_script [2007/01/04] administratorweb:page_move_script [不明な日付] (現在) – 外部編集 (不明な日付) 127.0.0.1
行 1: 行 1:
 +====== ホームページの引っ越しスクリプト ======
  
 +
 +===== .htaccessが使える場合 =====
 +
 +==== Redirectを使う ====
 +
 +同じファイルが存在しているときは、リダイレクトで転送することができます。ブログなどを同じシステムで大量のページを転送させたいときに便利です。
 +
 +例えば、%%http://www.hkd.cside.com/earlgrey/%%というURLを%%http://egt.tpot.tk/%%へ転送したい場合、
 +
 +.htaccessに<code>Redirect permanent /earlgrey/ http://egt.tpot.tk/</code>と記述します。
 +
 +==== ErrorDocumentを使う ====
 +
 +システムを変更した場合、同じようなURLにならないことがあります。新しいサイトのトップページに転送できればよいのであれば、ErrorDocumentを使うといいでしょう。
 +
 +.htaccessに<code>
 +ErrorDocument 403 /フルパス/error.htm
 +ErrorDocument 404 /フルパス/error.htm</code>
 +と、それに対応したerror.htmに
 +<code html>
 +<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>
 +</code>
 +と書いておけば、新しいサイトのアドレスにジャンプします。
 +
 +つまり、ページがないというエラーページをジャンプページに利用するというものです。もちろん、古いページのファイルはすべて削除しておきます。
 +
 +===== .htaccessが使えない、または、個別のページにジャンプさせたい =====
 +
 +.htaccessが使えない場合は、一つ一つのHTMLファイルに上記のerror.htmの内容を書き込んだファイルを用意しなければなりません。
 +
 +また、.htaccessが使えるとしても、新しいサイトの同じファイルにジャンプしてほしいときは、一つ一つのファイルにジャンプ先のURLを記述しなければなりません。
 +これをスクリプトで一括処理したいと思います。
 +
 +  - ディレクトリ構造をそのままに/tmp/htmlにコピーします。
 +    * 内容は書き換わるので、元のファイルで実行しないでください。
 +    * なお、HTMLファイル以外は削除しておいてください。
 +  - jump_source.htmを用意します。
 +    * 内容は、上記のerror.htmと同じものです。
 +  - 次に下記のスクリプトを用意します。make_jump_page.shとします。<code bash>#!/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</code>
 +  - これを実行すると/tmp/html以下のファイルの内容がjump_source.htmの内容になります。それだけではなく、NEWPAGEという文字列を新しいサイトのURLに置き換えます。
 +  - 新しく書き換えたファイルをそのまま古いサイトにアップロードし、アクセスすると自動的に新しいサイトの同じファイルにアクセスするようになります。画像等は削除してしまいます。
 +
 +===== PHPで書かれている場合 =====
 +
 +
 +PHPの場合は、受け取ったパラメタを新しいサイトの同じファイルに受け取らせる。
 +<code php>
 +<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>
 +<?php 
 +$getdata = $_SERVER['QUERY_STRING'];
 +print <<<END
 +<META HTTP-EQUIV="refresh" CONTENT="10; url=http://www.xxxx.com/yyy.php?$getdata">
 +</head><body>
 +<H1>PAGETITLE</H1>
 +<center>
 +このサイトは移動しました。<br>
 +<br>
 +<a href="http://www.xxxx.com/yyy.php?$getdata">http://www.xxxx.com/yyy.php?$getdata</a><br><br>
 +10秒後に自動的にジャンプします。<br><br>
 +<a href="javascript:history.back()">戻る</a>
 +</center>
 +END;
 +?> 
 +</body></html></code>