異邦人になってみた~~上海生活写真ブログ

中国上海市在住です。もう10年を超えました。休日は星空(天の川)撮影やポートレート撮影等、連休時はカメラを持って中国各地を旅行してます。最近は内モンゴル自治区によく行っています。

 このブログについて(about)
  中国旅行/観光/写真記事一覧(省別)

はたしてブログを引っ越しできるのか?はてなダイアリーからガジェットを使って自動リンク

ブログをここから引っ越ししたいと考えていますが、
引っ越し用に301リダイレクトとか、"rel"="canonical"とか入れたいのですが、
そこは触れません。簡単には出て行けないようにされているのかな。。
はてなダイアリーではJavaScriptが使えませんが、Googleガジェットは使えます。
いろいろ試行錯誤の末。。結局。。。
自動リンクぐらいさせれるかなと思い考えてみました。
Googleガジェットを作るんですが、XML直接書いてもいいのですが
自由度を持たせたかったので私はPHPGoogleガジェットのXMLを出力させてみました。
でもIGoogleがなくなっちゃってガジェットも使えなくなったりするのかな?

なくなったらつかえないな。。。
その時ははてなダイアリーから301リダイレクトではてなブログに引っ越し、
そのあとはてなブログJAVASCRIPTを書いて飛ばす。ですかね。。。


1.PHPでソースを書いてサーバーに置く

PHPのソース

<?php
//index.php
//直接ヘッダーを書こうと思ったがむりっぽい
//header("Content-Type:text/xml; charset=utf-8",true,301);
//echo <<<EOD
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="とばしちゃうよ"/>
<UserPref name="pu" display_name="pu" required="false" default_value="http://d.hatena.ne.jp/shan1tian2/"/>
<UserPref name="p" display_name="p" required="false" default_value="1"/>
<UserPref name="pt" display_name="pt" required="false" default_value="100"/>
<Content type="html">
<![CDATA[
<SCRIPT language="JavaScript">
<!--
EOD;
$ulink="";
$purl = "__UP_pu__";//ガジェットでパラメータを取得
$ppage = "__UP_p__"; //ガジェットでパラメータを取得
$times = "__UP_pt__";//ガジェットでパラメータを取得
//もしGETパラメータがある場合確認
//がジェットでパラメータ渡せなかった時のための予備。
if (isset($_GET["pu"])){
$purl = $_GET["pu"];
$ulink= $purl;
}else{
$ulink= $purl;
}
if(isset($_GET["p"])){
$ppage = $_GET["p"];
$ulink= $ulink."?p=".$ppage;
}
if(isset($_GET["pt"])){
$times = $_GET["pt"];
}

echo "\n";
echo "var url='" .$ulink."';\n";

echo "var mnt=".$times.";\n";
?>
//ヘッダも入れ替えようとしたけどエラーになるっぽい
//var doc = parent.document;
//var head = doc.getElementsByTagName("head")[0];
//var link = doc.createElement("link");
//link.setAttribute("rel","canonical");
//link.setAttribute("href","http://localhost/new.html");
//head.appendChild(link);

function Wait() {
window.parent.location.href= url;
//window.location.href= url;

}
setTimeout("Wait()",mnt*1000);


//-->
</SCRIPT>
]]>
</Content>
</Module>

※デフォルトの時間を短くし過ぎると即効で飛んで行っちゃうので
テスト時は長めにしましょう。
作ったファイルを
私は自分が借りてるサーバーにおきました。


2.ガジェットのテスト

上で作成したPHPを試します。
http://www.gmodules.com/ig/creator?url=ガジェットXMLのURL
でパラメータを確認します。
コードを取得でソースを取得しますが、このページのURLが、
src="//www.gmodules.com/ig/ifr?になっているので、
http://gmodules.com/ig/ifr?に変更します。
※デフォルトの時間を短くし過ぎると即効で飛んで行っちゃうので
テスト時は長めにしましょう。

<script src="http://gmodules.com/ig/ifr?url=
http://ガジェットXMLのURL/xml/&
up_pu=http%3A%2F%2Fd.hatena.ne.jp%2Fshan1tian2%2F&
up_p=1&up_pt=1&synd=open&
up_pt=1&
w=320&
h=200&
title=%E3%81%A8%E3%81%B0%E3%81%97%E3%81%A1%E3%82%83%E3%81%86%E3%82%88&
border=%23ffffff%7C3px%2C1px+solid+%23999999&output=js">
</script>
パラメータ説明。
url=ガジェットXMLのある場所
up_pu=飛ばし先のURL
up_p=ワードプレスを意識してのパラメータ「?p=」
up_pt=何秒後に移動するか
以下共通パラメータ
w=横幅
h=立幅
title=タイトル
border=枠線とそのスタイル
基本的にはup_puの部分をあたらしいURLに変えれば動くはず。

3.ガジェットのテスト

このサイトにいくと10秒後にこの今のページに戻ってくるように設定してあります。
http://d.hatena.ne.jp/shan1tian2+meinv/20131022


4.後の問題点

記事が少ないならまだいいですが、多いと相当大変そう。
A.引っ越し先の対応ページURLの取得
B.スクリプトを記事ごとに張り付けなければいけない。
これについては、
はてなダイアリーからMovable Type形式でエクスポート
ワードプレスで一旦インポートしてからエクスポートして
URLのマッチングをかけて
Movable Type形式でガジェットリンク入りのエクスポートファイルを作成。
はてなダイアリーの記事をいったん消して再インポートってしないといけなさそう。


5.分からない点、問題点

スクリプトで飛ばしているので既存のアクセスは問題ないが、
検索がGoogleから重複サイトやスパムサイトとして見られたりしないかが心配
301も"rel"="canonical"も入れられないので。。。教えられない。
WEBマスターツールでなんとかできんのかな?