同じファイルが存在しているときは、リダイレクトで転送することができます。ブログなどを同じシステムで大量のページを転送させたいときに便利です。
例えば、http://www.hkd.cside.com/earlgrey/というURLをhttp://egt.tpot.tk/へ転送したい場合、
.htaccessに
Redirect permanent /earlgrey/ http://egt.tpot.tk/
と記述します。
システムを変更した場合、同じようなURLにならないことがあります。新しいサイトのトップページに転送できればよいのであれば、ErrorDocumentを使うといいでしょう。
.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が使えない場合は、一つ一つのHTMLファイルに上記のerror.htmの内容を書き込んだファイルを用意しなければなりません。
また、.htaccessが使えるとしても、新しいサイトの同じファイルにジャンプしてほしいときは、一つ一つのファイルにジャンプ先のURLを記述しなければなりません。 これをスクリプトで一括処理したいと思います。
#!/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
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>