MENTAやTimeTicketでZoomオンライン指導・メンタリングを行っています。
WordPressやHTMLサイトのトラブル、SEO対策のご相談、HTML・CSS・WordPressなどのレクチャーなどが可能です。


さくらサーバーのWordPress SSL対応でつまづいたリダイレクト問題「このページは動作していません」

既存サイトを常時SSL化、HTTPSに対応しようとすると、リダイレクトや既存のフルパスの変更など、作業が結構あります。

新規SSLサイトなら手間も少ない・・・と思っていたらさくらのレンタルサーバでワードプレスをSSL化した時にリダイレクトの問題に躓いてしまいました。

参考にさせて頂いた記事の紹介をしています。大変助かりました!

ちなみに、さくらのスタンダードで、SSLはラピッドSSLを利用した環境です。

追記
※現在はさくらサーバーも無料で常時SSL(HTTPS)にできるようになりました。
こちらでサーバーの比較もおこなっていますので参考にしていただければ幸いです。


このページは動作していません

もし、サイトがリダイレクトで見られなくなり、管理画面には行けるようなら、僕と同じ状態かもしれません。

sakura-ssl-redirect-problem-02

www.ご利用ドメイン.jp でリダイレクトが繰り返し行われました。
Cookie を消去してみてください.
ERR_TOO_MANY_REDIRECTS

となってしまいますが、管理画面にはアクセスでき、一般設定はこのようになっています。

sakura-ssl-redirect-problem

ちょっと不可解な現象だったのですが、

一般設定でwww無しにする >> TOPページでアドレスバーのURLをhttps://wwwにする > 表示できる
管理画面でwww有にする >> TOPページのURL https://www にアクセスできない(リダイレクトでエラー)

というものでした。

色々と調べた結果、以下のサイト、ウェブタタン様の情報を参考にして解決することができました。

ひとおおりのhttps化作業をおこなっても私の場合、CSSがうまく読み込まれませんでした。調べたところ、さくらレンタルサーバーの仕様によりhttpsからhttpへリダイレクトされてしまうようです。
さくらインターネットの場合、httpsの判定は’HTTP_X_SAKURA_FORWARDED_FOR’という文字列で行います。

引用 https://webtatan.com/blog/wordpress/wordpress-https-sakura

wp-config.phpの修正

wp-config.phpの先頭に以下のコードを追加します。

if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
    $_SERVER['HTTPS'] = 'on';
    $_ENV['HTTPS'] = 'on';
    $_SERVER['HTTP_HOST'] = 'ドメイン名';
    $_SERVER['SERVER_NAME'] = 'ドメイン名';
    $_ENV['HTTP_HOST'] = 'ドメイン名';
    $_ENV['SERVER_NAME'] = 'ドメイン名';
}

www付きだったり、サブドメインだったりする場合は以下のようになりますね。

<?php
if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
    $_SERVER['HTTPS'] = 'on';
    $_ENV['HTTPS'] = 'on';
    $_SERVER['HTTP_HOST'] = 'www.xxxxxxxxx.jp';
    $_SERVER['SERVER_NAME'] = 'www.xxxxxxxxx.jp';
    $_ENV['HTTP_HOST'] = 'www.xxxxxxxxx.jp';
    $_ENV['SERVER_NAME'] = 'www.xxxxxxxxx.jp';
}
/**
 * The base configurations of the WordPress.
 *
 * このファイルは、MySQL、テーブル接頭辞、秘密鍵、言語、ABSPATH の設定を含みます。
 * より詳しい情報は {@link http://wpdocs.sourceforge.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86 
 * wp-config.php の編集} を参照してください。MySQL の設定情報はホスティング先より入手できます。
 *
 * このファイルはインストール時に wp-config.php 作成ウィザードが利用します。
 * ウィザードを介さず、このファイルを "wp-config.php" という名前でコピーして直接編集し値を
 * 入力してもかまいません。
 *
 * @package WordPress
 */

/* 以下略(通常のwp-config.html) */

.htacceccへの追記

こちらもコードの追加で対応可能でした。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://ドメイン名/$1 [R=301,L]
</IfModule>

注意する点はやはり、www付きやサブドメイン、サブディレクトリ(/wp/ や /blog/など、特定のWordPressのTOPページURL)についてです。こちらにはディレクトリの指定も必要な点に注意しましょう。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://www.xxxxxxxxx.jp/wp/$1 [R=301,L]
</IfModule>

さくらサーバーは手軽に利用できる価格帯で、おすすめすることが多いです。ラピッドSSLも年額1,500円で利用できるのはありがたいですね。

他にも常時SSLについての記事を書いているのでよかったら参考にして下さい。

HTTPのままだとchromeにアラートが??やはり常時SSL化の波は避けられない・・・複数サイトを保持しているなら無料で独自SSLが使えるサーバーへの引っ越しも有りですね。

常時SSLが無料で導入できるZenlogicでDNSの設定からWordPressインストール、HTTPS化までの道のりをここに記す。



おすすめコンテンツ

“さくらサーバーのWordPress SSL対応でつまづいたリダイレクト問題「このページは動作していません」” への2件の返信

  1. さくらサーバーの常時SSLの対応に役立ちました。ありがとうございます。

    1. コメントありがとうございます!
      さくらもようやく無料SSL導入してくれましたね~^^

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA