WordPressを共用SSL環境下で動かす方法

この記事は、作成日から14年経過しています。内容が古い可能性があります。またこの記事は、大幅なデザイン変更前に書かれたものですので、レイアウトが崩れている可能性があります。ご了承ください。

 今回の記事はやや技術的な話です。WordPressというブログ構築システムにおいて、管理画面を共用SSLの環境下で動かす方法です。100%合っているという自信はありませんが、私の環境では問題なく動作しています。もし、「違う!」というところがあれば、コメントとして書き込んでいただければ幸いです。なお、プラグインを開発する力はないので、開発できる方はぜひお願いいたします。

【動作確認環境】

【共用SSL使用時に現れる問題点】

  • ログイン・パスワードが合っているはずなのに、管理画面に移行しない
  • 管理画面で何らかのボタンをクリックしたときに、「ページが表示されません」状態になる
  • AdminSSLというプラグインを使えば共用SSL下でも問題なかったが、最新版のWordPressでは不具合がでる

【解決のポイント】

  1. WordPress のアドレスとサイトのアドレスをwp-config.php上で指定する
  2. FORMタグ内で$_SERVER['REQUEST_URI']を用いてページの遷移が決められているところに修正を加える

【解決方法】

以下、URLをhttp://www.corearata.com/、共用SSL下では、https://ssl.dummy.du/corearata.com/として記述します。

(手順1)

wp-config.php内の認証用ユニークキーの下あたりに下記の2行を追加する。なお、最後にURLの最後にバックスラッシュは書かない。

define('WP_SITEURL', 'https://ssl.dummy.du/corearata.com');
define('WP_HOME', 'http://www.corearata.com’);

(手順2)

wp-admin/plugins.php内の、<form method="post" action="<?php echo esc_url($_SERVER['REQUEST_URI']); ?>" style="display:inline;">:273行目を下記のように修正する。

<form method="post" action="/corearata.com<?php echo esc_url($_SERVER['REQUEST_URI']); ?>" style="display:inline;">

(手順3)
wp-includes/functions.php内の、 $referer_field = '<input type="hidden" name="_wp_http_referer" value="'. $ref . '" />';:1942行目を下記のように修正する。

$referer_field = '<input type="hidden" name="_wp_http_referer" value="/corearata.com'. $ref . '" />';

以上です。また、一部のプラグインをインストールした際、そのプラグインの設定画面において、共用SSL環境下独特のエラーが生じる場合があります。ほとんどは、解決のポイント2に挙げたところで解決できます。

 また、ContactForm7で問い合わせフォームを共用SSL化する方法は、猪突迷走さんの記事をご参照ください。

  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (2件)

  • こんにちは。
    こちらのサイト大変参考になります。

    WordPressを共用SSL環境下で動かす方法を参考に設定してみました。

    大体はうまく起動しているのですが
    ウィジェットのメタ情報やis_user_logged_inのユーザー判定がされていませんでした。

    ログインしても常に『ログイン』が表示されているだけです。

    何か解決方法はあるのでしょうか?
    宜しくお願いします。

    • ご覧いただきありがとうございます。あくまで、継ぎ接ぎなので、なかなかうまく動作しない部分もあると思います。

      WordPressHTTPS というプラグインを利用してみてください。

      http://wordpress.org/extend/plugins/wordpress-https/

      ひょっとすると改善されるかもしれません。

コメントする

目次