So-net ブログで特定の記事を自動的にリダイレクトさせる方法

So-net ブログで特定の記事に meta refresh を設定する方法です。記事 URL を変更するときなどに使えます。

So-net ブログではユーザーが記事毎に「記事URL」(通常は日付のナンバリング)を指定することが出来ますが、この URL は変更してしまうと閲覧者がアクセスができなくなります。削除してしまいたい記事ならかまわないのですが、引継ぎを行うとなるとちょっと厄介です。

「URL が移動しました」とでも書いてリンクを貼っておけばそれでもいいのですが、閲覧者が新しいリンクを開かずに去ってしまう可能性もあるため、新しい記事に meta refresh を使って自動転送させることにしました。


最初に転送元の記事 ID を調べておきます。記事 ID は記事編集画面の URL の id= に続く数字です。余談ですが、この ID は独自タグ <% article.id %> で出力されています。

https://blog.so-net.ne.jp/MyPage/blog/article/edit/input?id=56488099

記事 ID は ifunless と組み合わせて使うことができます。これとリダイレクト用の meta タグを合わせます。<% if:article.id == "id" %> とすれば「記事の ID が id の時に〜」という条件になります。

<%- if:article.id == "[記事ID]" %>
<meta http-equiv="refresh" content="[転送待ち時間(秒)];url=[転送先]">
<%- /if %>

仮に…

  • 転送元の記事 ID が 49486765
  • 転送先の記事 URL が http://mattintosh.blog.so-net.ne.jp/56488099

の場合は以下のようになります。

HTML テンプレート

<%- if:article.id == "49486765" %>
<meta http-equiv="refresh" content="0;url=<% blog.page_url %>56488099">
<%- /if %>

出力結果

<meta http-equiv="refresh" content="0;url=http://mattintosh.blog.so-net.ne.jp/56488099">

このコードを HTML テンプレートの <head>〜</head> 内に追加しておけば if の条件式に一致した場合のみ meta refresh が出力され、ページのリダイレクトが行われます。

これは PC ページ閲覧時のみ出力されます。モバイル、スマートフォン用に転送元の記事には転送先のリンクを忘れずに。

Trackback