Biglobeのホームページをさくらインターネットにミラー化したところですが、この際、全てを転送する事にしました。Biglobeから実際に引っ越しする訳ではありませんが、ページ管理を簡単にする目的です。基本的には、Biglobeのへのアクセスをさくらインターネットのへ転送(リダイレクト)するだけです。「.htaccess」が使えれば、簡単なのですが、残念ながらBiglobeでは使えません。そこで、JavaScriptを使って、自動転送させる事にしました。都合のいい事に、ほぼ全てのページの右側に作者のサイトへのリンクを貼っているのですが、これは各ページから共通のJavaScriptを呼んで実現しています。従ってこの共通のJavaScriptに転送処理を組み込めば、各ページの変更は必要ありません。但し、この共通のJavaScriptを呼んでいないページも一部あるので、そのページには個別に組み込む事にしました。
【JavaScriptによるURL自動転送】
Biglobeの「http://www2h.biglobe.ne.jp/~hnakamur/xxxxxx」へのアクセスをさくらインターネットの「http://nakamura-hiroshi.com/www/xxxxxx」へ転送します。URLのパス部分「~hnakamur/xxxxxx」のユーザディレクトリ「~hnakamur」を「www」に置換して、さくらのドメインに付加します。以下のコードを記述します。パスの下位部分はそのまま使うので、どこのディレクトリに置いてもOKです。
追加1と2は、後で追加した部分です。Googleの検索結果から飛んで来た場合に、チルダ(~)がコード「%7E」となっていたり、チルダそのものが無いケースがある事が判ったためです。
var path=location.pathname;
path= path.replace('~hnakamur','www');
path= path.replace('%7Ehnakamur','www'); <--追加1
path= path.replace('hnakamur','www'); <--追加2 location.href = "http://nakamura-hiroshi.com" +path;