だれでも直せる!はてなブログからのリダイレクト方法!

ブログ

先日、はてなブログからWordPressへのブログ移行を行いました。

ブログ移行に伴い、悩ましいのがリダイレクト。
どうやって見てくれる人に新しいブログをアナウンスするのか、悩ましいところです。

今回は、リダイレクトの方法と、だれでも簡単に自分用に加工する方法を伝授致します。

参考にしたサイト

今回、こちらのサイトを参考にさせていただきました。

はてなブログから引越し後のはてなブログのリダイレクト設定方法
はてなブログからWordPressへの引越しを完了したこのサイトですが、最後にはてなブログからWordPres…

こちらのサイトに書いてある手順で行うことで、基本的にははてなブログからのWordPressへのリダイレクトが完了します。

自分のブログだと手直しが必要だった

今回、自分のブログに適用したところ、リダイレクト後の記事がうまく表示出来ませんでした。

そこでURLを確認してみたところ、リダイレクト前後で以下のようにURLが変わっていました。

はてなブログから記事をそのままインポートしたことに原因があるのかもしれません。

【リダイレクト前】
”https://daru-knowledge.hatenablog.com/entry/2018/08/14/100119″

【リダイレクト後】
“https://darubrog.com/entry/2018/08/14/100119”

【ほんとにリダイレクトしてほしいURL】
“https://darubrog.com/2018-08-14-100119/”

さて、以下の点を直さなければいけません。

  • 「entry」の記述を消す
  • 年月日部分の記述の「/」を「−」になおす

この2点について、直し方と実際の直したコードを説明します。

手直しの内容はこれ!

手直しした記述はこちら。

【修正前】
// 新urlの作成
var domain = “https://darubrog.com”; // 新ドメイン
var path = location.pathname;
var url = domain + path;

【修正後】
// 新urlの作成
var domain = “https://darubrog.com”; // 新ドメイン
var path = location.pathname;
if(path != “/”){
path = path.replace(/\//g,”-“);
path = path.replace(“-entry-“,”/”);
};
var url = domain + path;

同じように、うまくリダイレクト出来ない方は、修正後部分を取り込んでみてください。
4行程度追加されているのがわかると思います。

手直し内容の説明

追加した4行のうち、大事なのは以下の2行。
path = path.replace(/\//g,”-“);
path = path.replace(“-entry-“,”/”);

更にいうと、path.replace(★★★)と書かれている、★部分が大事です。

2行目のほうが簡単なのですが、文字がどのように変わっているかを見るために、1行目から確認して行きましょう。

ちなみに「path」には個別記事(今回の場合、「/entry/2018/08/14/100119」)へのパスが入っています。

まず1行目。

1行目を実行することで、以下のように変化します。
【実行前】
https://darubrog.com/entry/2018/08/14/100119
【実行後】
https://darubrog.com-entry-2018-08-14-100119

「path.replace(/\//g,”-“);」記述では、
「/\//g」で「/」を見つけて
「”-“」で見つけたすべての「/」を「-」に変換しています。

例えば、
path.replace(/a/g,”b”);
と記載すると、見つけたすべての「a」を「b」に変換してくれるようになります。

そして2行目。

2行目を実行することで、以下のように変化します。
【実行前】
https://darubrog.com-entry-2018-08-14-100119
【実行後】
https://darubrog.com/2018-08-14-100119

2行目は1行目より簡単で、
「path.replace(“-entry-“,”/”);」の記述において、
「-entry-」をみつけたら「/」に変換しています。
1行目と違い、1つ見つけて変換したら終わってしまいます。

例えば、
path.replace(“a”,”b”);
と記載すると、見つけた最初の「a」を「b」に変換してくれるようになります。

ちょっと難しい話

よく見ると、1行目と2行目の例えでは、
path.replace(/a/g,”b”);
path.replace(“a”,”b”);
と記述が微妙に違います。

これは正規表現と呼ばれるもので、文章を検索する時によく使われる記述方法になります。
1行目の書き方をすることで、「a」を1つだけでなく全部見つけてくれるようになります

正規表現は記述をなおす際によく使われますので、一度調べてみてください。

まとめ

どうでしょうか。自分なりに修正することが出来たでしょうか。
はてなブログから移転する際のリダイレクト方法として悩んでいる方の参考になっていれば幸いです。

コメント