WordPressで特定のページをSSLのみアクセス可能にする

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

※追記

  • 本記事で紹介しているプラグイン「Admin SSL」は、2015年5月現在、最新のWPとの互換性が保証されていないため、使用をあまりおすすめしません。
  • また、WordPressは2.6以降管理画面でのSSL通信がサポートされており、最近不具合が解消されつつあるようですので、以下のとおりWordPress本体の設定を変更されることをおすすめします。

管理画面での SSL 通信 – WordPress Codex 日本語版


神乃木製作所のWebサイトはWordpressで作っている。
このサイトは https://でアクセスしてもhttp://にリダイレクトされる一方、お問い合わせフォームはSSL専用なので、 http://でアクセスしてもhttps://に自動で直すようになっている。

このような設定を行うためには、Replace Domainというプラグインと、Admin SSLプラグインを使う。

Replace Domainのインストール

http://www.koikikukan.com/archives/2011/06/01-005555.php

プラグインは上記ページからダウンロードできる。
プラグインをインストールして有効化後、「設定」→「ドメイン設定」から設定画面に移り、「プロトコル:http」「SSLのみ動作」をチェックする。
これで、https:// でアクセスした際、http://に強制的にリダイレクトされるようになる。変なページでhttps://が入ることがなくなる。

Admin SSLのインストール

http://wordpress.org/extend/plugins/admin-ssl-secure-admin/

上記ページ、若しくはWordpressのプラグイン画面からインストールを行う。

インストール後、「プラグイン」→「Admin SSL」に移り、一番上の「Secure my site with SSL」にチェックを入れ、「Additional URLs」にSSL化したいページのURLを入力する。

神乃木製作所ではお問い合わせページと管理画面をSSL化したいので、「contact」「wp-admin」と入れた。

wordpress
後は一番下の部分の「HTTPS Detection」項目において、「HTTPS」「on」になっていることを確認する。
adminssl

あとは「変更を保存」を押して終了。

プラグインをインストール後、画面が白くなった場合

Admin SSLをインストールして設定後に画面が白くなった場合は、たいていはSSL環境変数を設定していないことに起因する。
SSLでアクセスしたとき、環境変数「HTTPS」に「on」という変数が設定されるようにしよう。

ApacheであればSSLバーチャルホストの記述を開き、

setenv HTTPS on

と入力する。
nginxであればServer部分の記述を開き、fastcgiのパラメータを以下のように追加する。

fastcgi_param HTTPS                 on;

これで、SSLが必要な場所ではAdmin SSLが優先して動作してhttpsに、SSLが不要な箇所ではReplace Domainが動作してhttpに振り分けることができるようになった。

記事の品質向上のため、感想をお聞かせください。

  • 分かりやすかった・ためになった (3)
  • 分かりにくかった・ためにならなかった (0)
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)