wordpress 共有SSL

ちょっと仕事でwordpressをいじっていたら、特定のページだけでも共有SSLにするという話になった。
AdminSSL
というプラグインがあって、それを試していたのだが、どうにもちゃんと動かない。グーグル先生に色々聞いてみたのだがどれもだめ。具体的には、トップページへリダイレクトされてしまうのが直らない。もしくはアクセス不可になる。他のサーバでは同じ事を

原因をさぐってみると、どうやら$_SERVER[‘HTTPS’]のところがonになっていないようだった。Admin SSLは現在のページがSSLになっているかどうかをその変数で判断している。
なので、print_r($_SERVER);にて値を確認してみるも、その値自体がない。他に判断材料としては、$_SERVER[‘SERVER_PORT’]ぐらいか。

ということで、”HTTPS Detection”のところを

もちろんこうしてみました。

が、これでも動作しませんでした。さらに調べると、[解決済み] 独自ドメインから共有SSLを利用したURLへのリンクを参考に、AdminSSLを捨て、テーマのための関数 (functions.php)に自力で書き込んでみることにしました。
参考にした1行は、

if ($_SERVER[‘HTTPS’]) {remove_action(‘template_redirect’, ‘redirect_canonical’);}

なので、このままでは$_SERVER[‘HTTPS’]を参照してるのと同じ事なのでこれをちょっと変更。

if ($_SERVER[‘SERVER_PORT’] != 80) {remove_action(‘template_redirect’, ‘redirect_canonical’);}

こんな風にしてみました。
結果はちゃんと目的のページを表示出来るようになりました。

あとは、テンプレート内のCSSの参照場所やリンクURLなどがめちゃくちゃになるので、何とかすればいい。

コメントする

必須フィールドには、* がマークされています。あなたのメールアドレスが公開されることはありません。