PR

WordPress HTTPS を導入。非SSL から SSL へ 301リダイレクト

wordpress
記事内に広告が含まれている事があります。

 

 

先日のエントリー「サーバの引っ越しをしたら予約投稿が出来なくなった件」でお伝えしたように、このブログにメールマガジン機能等、訪問して頂く方とのコミュニケーションを取れるような機能を導入したい。

 

コミュニケーションを取る為に、メールアドレス等の個人情報も入力して頂きたい。個人情報を Webサイト上で取得する場合には、豊作プロジェクト社の社内規定で SSL(暗合化通信)を導入しなければならない。

 

その SSL 、スタッフにお願いしてこのサイト「OBRIGADO! ARIGATO!」と「トライアスロンオンライン」に 導入してもらった。

 

SSLはサーバに負荷がかかるので、必要箇所以外は SSL にしない。って事にするのだが、メールマガジンや投稿時にメールでお知らせの受付フォームをサイドバーに付けたいので、サイト全域でSSL通信にしなければならない。

 

最近、大手サービスはサイト全域 SSL ってのも増えて来ているので、それでも良いかな。(Google や facebook 等)

 

よって、全てのアクセスは https:// から始まる物にする必要がある。

 

この場合、非SSLサイトの画像を直接貼り込んだり、外部サービスのガジェットが SSL に対応していない場合等「SSL対応していない物が含まれます」なんてメッセージを出すブラウザや、アクセスがそもそも出来ないブラウザが存在するので、使えないものがある。ここはそういう物だと認識し、運用する。

 

次に非SSL通信 でアクセスして来た場合、SSL通信に転送しなければならない(ちょっと難しくて済みません。)

 

http://〜 でアクセスして来たら https://〜 に転送させる。「s」が付いているか付いていないか?が違いになり「s」が付いていると暗合化通信が行われる。これを実現するには幾つかの方法があるが、今回はこれまでにも使った事のある「WordPress HTTPS」を採用。

 

プラグインの新規追加で「WordPress HTTPS」を探し、インストールし有効化する。左メニューに「HTTPS」が現れるので、そちらをクリック。設定メニューが現れる。

 

色々な設定がある。今回は全て SSL にしちゃいたいので、URL Filters の Secure Filters 欄に、「/」とだけ入れる。「/」はそのサイト全部ですよ。って表現。

 

これを入力して「Save Changes」をクリックすると http://〜 でアクセスして来たら https://〜 に転送される。

 

スクリーンショット 2013-05-31 9.37.40

 

この転送も恒久的な転送(ずっとこっちに移りましたよ)って合図の 301 コードを出してくれるので、検索エンジンが http://〜 から https://〜 に移ったんだ。と認識してくれる。

 

しかし、これだけだとTOP以外に直接アクセスされた時の挙動が怪しい。「.htaccess」に以下を記述しコンテンツに直接アクセスされた場合に備える。

 

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 

これでだいぶいい感じである。

 

スマホでアクセスをした際、転送時サーバが一瞬もたつく。ここをなんとかしたいな〜と思うが、そのうち http://〜 でアクセスする人がいなくなるのでこれで良しとしようかな・・・

 

 

コメント

タイトルとURLをコピーしました