MENU

【Blog】はてなブログで変更前のURLから変更後のURLへ転送する方法

f:id:min0124:20170919194210p:plain:w300

投稿済みの記事のパーマリンクをデフォルトからカスタムURLに変更したい!

素直に変更してしまうと、変更前の記事のリンクからアクセスするユーザーは

お探しの記事は見つかりませんでした。

となってしまいます。

これだとリンク切れが起きてしまうので、非常によろしくないです。

ということで、どうしてもURL変更したい場合はjavascriptを使って、変更前のURLから変更後のURLへと転送するしかなさそうです。

カスタムURLへの変更

SEOや今後のWordpress移転の可能性も考えて、記事のパーマリンクをカスタムURLに変更をかんがえています。(※はてなブログのデフォルトのパーマリンクだとWordPressにURLがきれいに移植できないも問題があります!)

f:id:min0124:20170919193946p:plain

例えば

http://www.cg-method.com/entry/2017/09/19/100000

http://www.cg-method.com/entry/ae-setting-reset

と言った感じですが、変更するにはリンク切れが起きてしまうリスクがあります。

はてなブログでは301リダイレクトが行えない

301リダイレクトとは、変更前のURLから変更後のURLへ転送するための仕組みです。

しかし、はてなブログでは301リダイレクトが行えません。

javascriptを使っての転送方法

ヘッダに下記のスクリプトをコピペします。

f:id:min0124:20170919193034p:plain

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.3.min.js"></script>
<script type="text/javascript" language="javascript">

// <![CDATA[

//元記事
  var re = new RegExp(".*entry/2017/09/19/100000");
//新記事
  var url = "http://www.cg-method.com/";

  var href = window.location.href;

  if (re.test(href)) {
    $(document).ready(function() {
      if ($('#main-inner').children().hasClass("no-entry")) {
        var content = "<p>本記事は移転しました。</p><p>約3秒後にリダイレクトします。</p><p>リダイレクトしない場合は <a href='http://www.cg-method.com/'>ここ</a>をクリックしてください。</p>" ;
        $('.entry-footer').addClass('sorry_content');
        $('.entry-footer').html(content);
      }
    });

    var link = document.getElementsByTagName("link")[0];
    link.href = url;

    setTimeout("redirect()", 3000);
    function redirect(){
    location.href = url;
    }
  }
// ]]>

</script>

あとは元記事、新しい記事にパスをURLを入力するだけです。

指定した記事にアクセスすると3秒後に新しいURLへ飛ばすことができます。

複数、転送したい記事入れたい場合

コードの// <![CDATA[ ~ // ]]>の部分のコピーして追加して、入力するだけです。

参考