2012-03-18

blogspot.jp にリダイレクトされてしまう Blogger ブログを再び blogspot.com/ncr にリダイレクトするためのスクリプト

Blogger ブログの blogspot.jp へのリダイレクト騒動と、/ncr でリダイレクトを一時的に停止できる件については、こちらを読んでもらうとして…。 読者に /ncr パラメータをわざわざつけてもらうというのは不可能に近いので、スクリプトで対応したらどうか、と思った次第。 <head> のすぐあとに入れておくのがいいかと。

<script type="text/javascript"> if (!location.hostname.match(/blogspot\.com$/)) {   location.href = "http://" + location.host.replace(/blogspot\.[a-z]+/, "blogspot.com") + "/ncr" + location.pathname + location.search + location.hash } </script>

いや、こういうこともできるよ、という参考程度に考えてもらえるとありがたい。Blogger(Google)の方針とは完全に逆の方向なので、おとがめがあるかもしれず…、あくまで導入は自己責任で。

参考:
追記:

と思ったけれど、このスクリプトだと、Google ウェブ検索のキャッシュで表示されたときにもリダイレクトしてしまいますね…。失敗。

こっちの方がよさそう。
再追記(2012-03-24):

追記で載せたリンク先のスクリプトも、blogspot.ca など、ほかの国別ドメインへリダイレクトされたときに、スクリプトが止まらなくなって無限ループに陥ってしまう問題があるみたい。「今のホストが blogspot.com じゃなかったら、blogspot.jp を blogspot.com へ書き換えた URL へジャンプする」という流れで、書き換えが行われなくてもページ移動してしまうため。

で、僕も再びスクリプトを書き直し。blogspot.ca とかの国別ドメインでも、Google ウェブ検索のキャッシュでも問題ないようになったはず。
<script type='text/javascript'>
var hostName = location.hostname;
if (!hostName.match(/blogspot\.com$/) &amp;&amp; hostName.match(/blogspot\.[^.]+$/)) {  
  location.href = "http://" + location.host.replace(/blogspot\.[^.]+/, "blogspot.com") + "/ncr" + location.pathname + location.search + location.hash;
}
</script>

2 comments: