忍者ブログ

忍者ブログがSSL化されたよ

Date:

去年の年始から忍者ブログもSSL化されるようになったようです!!うれしい。

お知らせ『忍者ブログのSSL(https)化について

SSLとは

SSLっていうのはサイト表示する際に通信を暗号化する技術のことをいいます。ブラウザのアドレスバーの先頭に鍵マークが付いているの気になったことありませんか?

SSL化されたサイト


SSL化されていないサイト


SSL化されるとアドレスバーの先頭に鍵マークがつきます。サイトがSSL化されることで悪意のある第三者に通信を傍受されたとしても内容を読み取られる心配はありません。個人情報を取り扱うショッピングサイトなどでは必須の対応です。

別にブログの内容なんて通信の中身を見られたってなんの不都合もないんですけども。。。最近は、Google検索サイトの方針に変更があって、全てのサイトをSSL化することが基本になりつつあります。SSL化されたサイトを検索上位に優先すると言われるようにもなっているので、忍者ブログも早くSSL化されないかなーと思っていた人は多いかと思います。

Google検索結果がSSL化されない!?

基本的にはGoogle側が自動的にSSL化されたサイトのありなしを判断してくれるんですけども、忍者ブログはいつまでたっても非SSLのサイトしか読んでくれないようです。僕の環境だけかもしれないですけども。

SSL化されていようがいまいが同じサイトなんですけども、Google検索サイトでは内部的にSSL化されたサイト(https://からはじまるURL)と、非SSLのサイト(http://からはじまるURL)が別サイトとして管理されているようで、Googleに検知されない場合はカノニカルタグを設置するとよいようです。
余談:JavaScriptで簡易的にリダイレクトかける方法を勧めているものもありますが、これだと一時的にサイト遷移をしていることにしかならず本質的な対策とは言えないように(個人的には)思います。(参考:301、302リダイレクトの違い。)忍者ブログの場合、301リダイレクトの設定ができないので、個人的にはカノニカルタグを設置しておきGoogle側でSSLサイトを認識してもらうっていうのがより本質的な対策だと思います。

カノニカルタグとは

カノニカルタグとは、サイトのお引越しをする際などによく使われるもので、引っ越し元のページに、引っ越し先はこっちですよーってのを検索サイトに通知する用途で使われます。これを設置することで、同類ページがダブって掲載されていているような場合に正しいURLを通知することができます。

これを使って、非SSL → SSLページへ適切に検索サイトを誘導することができるようになります。
旧)http://xxxxx.blog.shinobi.jp
新)https://xxxxx.blog.shinobi.jp
ということで、前置きが長くなりましたが、忍者ブログにカノニカルタグを設置する方法です。

以下のコードをテンプレート編集画面に埋め込めばOKです。
デザイン → PC用テンプレート → 修正 → HTML編集
<head> 〜 </head> 内のどこかにこのままコピペしてください。
<!--if_entry--><!-- 記事詳細ページ -->
    <link rel="canonical" href = "https://<!--$g_user_id-- ><!--entry--><!--$entry_link--><!--/entry-->">
<!--/if_entry-->
<!--if_page--><!-- トップページ -->
    <link rel="canonical" href = "https://<!--$g_user_id-->">
<!--/if_page-->
トップページと、記事詳細のみの対応です。

カテゴリとか日付の場合は、現在表示しているページのURLが取れないので、、、そこは割り切りで対象外です。。。あと、スマホ用のテンプレートを個別に設定して使っているユーザの場合、スマホのテンプレートの中身はいじれないので、こちらも対象外になります。

忍者ブログでプロトコルが自動変換されてしまう機能がある!?

余談ですが、コードを自分で書く人に念のため注意です。

どうやら、忍者ブログのSSL化対応に伴い、忍者ブログ内で強制的にプロトコルの上書きが行われているようにみえます。

どういうことかというと、href="http://[忍者ブログのURL]" という指定があったとした場合、これをSSLで表示すると、URLのパスが自動的に href="https://[忍者ブログのURL]" に置き換わります。これはこれで非常に便利な機能ではありますが、逆にURLのパスがhttpsのときに、非SSLで表示すると同じ用にhttps: → http: に上書きされてしまいます。(つまり、カノニカルタグが使えない)

これを回避するために色々試行錯誤したのですが、回避は意外と簡単でした!
どうやら、href=" の文字列でURLを判断しているようなので、href、=、” の間に改行だとかスペースをいれてやると回避できます。
NG: href="https://[忍者ブログのURL]"
OK: href = "https://[忍者ブログのURL]"
非常に細かいところですが、これでだいぶハマったので、共有です。

PR

Category: | Date:2021/11/20


忍者ブログ [PR]