ブログをここから引っ越ししたいと考えていますが、
引っ越し用に301リダイレクトとか、"rel"="canonical"とか入れたいのですが、
そこは触れません。簡単には出て行けないようにされているのかな。。
はてなダイアリーではJavaScriptが使えませんが、Googleガジェットは使えます。
いろいろ試行錯誤の末。。結局。。。
自動リンクぐらいさせれるかなと思い考えてみました。
Googleガジェットを作るんですが、XML直接書いてもいいのですが
自由度を持たせたかったので私はPHPでGoogleガジェットの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マスターツールでなんとかできんのかな?