IMUZA.com

<<WordPress(ConoHa)<<はてなブログ

ホーム / javascript / はてなブログ間の記事移動はJavascriptとcanonicalでリダイレクト

はてなブログ間の記事移動はJavascriptとcanonicalでリダイレクト

2019/04/09 javascript, WebTips, はてなブログ

現在、はてなブログで4つのブログを運用しているのですが、そのうちのひとつを別のブログに統合しようと思います。

で、どうやってリダイレクトするかですが、もちろん .htaccess は使えませんので Javascript を使うしかありません。

今回の条件

はてなブログ間で記事を移動する場合、カテゴリーもそのまま移動するのであれば、移動するブログの 詳細設定 -> headに要素を追加 に

<script>
location.href = http(s)://移動先ブログのドメイン + location.pathname;
</script>

と入れておけばリダイレクトされます。

ただ、今回の場合、

  • 移動するブログには複数のカテゴリーがあるが、移動先ではひとつのカテゴリーにまとめる
  • トップページ、カテゴリーページ、アーカイブページは、移動先のカテゴリーページにリダイレクトする
  • 記事ページは、移動先記事ページにリダイレクトする

という条件で移動しますので、若干手を加える必要があります。

また、 rel="canonical" ですが、こうした場合に Javascript で差し替えることに効果があるかどうかわかりませんが、やっておいて損はありませんのでやっておきましょう。

エクスポートした記事ファイルの整形

  1. まず、移動するブログの 設定 -> 詳細設定 -> エクスポート から記事ファイルをダウンロードします。
  2. ファイルをエディタで開き、カテゴリーを削除、修正など、ひとつのカテゴリーに変更します。
  3. 移動先のブログで記事ファイルをインポートします。

Javascript でのリダイレクト

上記の条件下でリダイレクトする場合の Javascript です。

即時リダイレクト

<script>
if(location.href.indexOf('entry') !== -1){
var url =  http(s)://移動先ブログのドメイン + location.pathname;
}else{
var url =  http(s)://移動先ブログのドメイン + '/archive/category/移動先の新しいカテゴリー';
}
document.getElementsByTagName('link')[0].href = url;
location.href = url;
</script>

これは 詳細設定 -> headに要素を追加 に入れても、カスタマイズ -> ヘッダ -> タイトル下 に入れてもいけます。

メッセージ表示後にリダイレクト

<script>
if(location.href.indexOf('entry') !== -1){
var url =  http(s)://移動先ブログのドメイン + location.pathname;
}else{
var url =  http(s)://移動先ブログのドメイン + '/archive/category/移動先の新しいカテゴリー';
}
document.getElementsByTagName('link')[0].href = url;
var elem = document.createElement('div');
elem.innerHTML = '当ブログは「' + 移動先のブログ名 + '」に統合しました。<br />5秒後に新しいブログに移動します。';
elem.setAttribute('style', 'width:100vw;height:100vh;padding-top:100px;text-align:center;background:#fff;font-size:20px;font-weight:bold;position:fixed;z-index:9999;');
var parent = document.getElementById('container');
parent.insertBefore(elem, parent.firstChild);
setTimeout(function(){
location.href = url;
}, 5000);
</script>

こちらは カスタマイズ -> ヘッダ -> タイトル下 に入れないと id=container 要素を取得できません。

適用したサイト

(2019.4.10)カテゴリーを維持したまま移動しようと検討中につき、まだリダイレクトしません。

mankan.hatenablog.jp

はてなブログ用 Javascriptモジュール imzModules ver.2.0
Joomla! 3.9.5 セキュリティ & バグフィックスがリリースされています
Twitter
Facebook
ブックマーク
LINEで送る

最初のサイドバー

最新記事

2022/06/26

WordPress:Aレコード変更でウェブだけ他サーバへ移転

2022/06/13

WordPress Popular Posts 他のプラグインに変えたほうがいいかも

2022/06/06

WordPress Popular Posts 表示されないを解決する

2022/06/03

WordPress Popular Posts 表示されない(解決だが…)

2022/05/29

WordPress:テーマをゼロから作ってみる(2)

最新記事を一覧で見る

よく読まれている記事

カテゴリー

  • はてなブログ211
  • WebTips108
  • javascript95
  • Joomla!88
  • Windows68
  • CSS62
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Wordpress34
  • Plamo33
  • Google32
  • はてなプラグイン25
  • php18
  • Node.js18
  • Ubuntu16
  • SASS16
  • laravel415
  • cms-style10
  • Chrome10
  • iPhone9
  • Git入門6
  • genesis6
  • Android4
  • Python4
  • ConoHa WING4
  • 静的サイトジェネレーター3
  • Firefox3
  • Blankslate3
  • Docker3
  • SSD3
  • Facebook3
  • スマートフォン3
  • GitHub2
  • Mactype2
  • 映画1
  • rails入門1
  • Twitter1
  • はてなブクマ1
  • youtube1

Footer

My Web Sites

  • @半径とことこ60分
  • そんなには褒めないよ。映画評
  • IMUZA.com
  • GitHub

Another Sites

  • WordPress公式
  • WordPress関数リファレンス
  • PHPマニュアル

Contact Us

  • お問い合わせフォーム
  • Twitter
  • Facebook
  • Feedly

Copyright © 2022 · IMUZA.com