さくらインターネットのOSアップデートに伴う影響、WPで常時SSLを手動で設定したユーザは.htaccessのリダイレクト記述の変更が必要!

2019年3月5日
さくらインターネットのOSアップデートに伴う影響

さくらインターネットが、2019年1月から順次OS(FreeBSD)のアップデートを開始している。
サーバ番号により実施日が指定されており、現在は4月までのメンテナンス日程がアナウンスされている。
サーバから届くメールは、スルーしがちであるが、今回はしっかり確認する必要がある。
件名「[さくらインターネット]OSアップデートメンテナンスのお知らせ」が届いたら、必ず一読する。
アップデート日程に合わせ、対応を行わないとサイトが正しく表示されない場合がある。
具体的には、すべてのページがトップページにリダイレクトされてしまう。
その条件として、以下の3つが当てはまるサイトである
1.WordPress使用
2.常時SSL対応
3.http→httpsへのリダイレクト設定を、.htaccessに手動で記載
WordPressユーザの場合、常時SSLへの設定をWPのプラグイン「さくらのレンタルサーバ 簡単SSL化プラグイン(SAKURA RS WP SSL)」で設定している場合は影響を受けない。


しかし、このプラグインを使用しないで、上記の2の設定、つまり手動で行った場合は影響する。
サーバのアップデート開始までに、さくらインターネットサーバだけの独特のリダイレクト設定の記述を削除、もしくは書き換えることが必要である。
環境変数:X_SAKURA_FORWARDED_FOR の設定を中止する。
FreeBSDのアップデートに伴う変更点 (2019/3/4 更新)の実施に伴う影響の(2019年2月26日追記)に明記していて、さらにその下に注意事項として表示されている。

X_SAKURA_FORWARDED_FOR の設定を中止する

■アップデート前のhttpsへのリダイレクト設定

RewriteEngine On
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://www.example.jp/$1 [R=301,L]

■アップデート後(通常のサーバに設定する記述)

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

その他の設定もあり↓
.htaccessによるアクセス制御-さくらのサポート情報
アップデートの2週間前にもう一度メールが届く。
件名:「【2週間前のご案内】[さくらのレンタルサーバ] OSアップデートメンテナンスのお知らせ」
このメールが届いたら、該当者は必ず確認、対応するようにする。
(当面の対応として、アップデート前後にタイミングよく変更できない場合は、とりあえず数日前に、現在のリダイレクト設定部分を削除する。
すでにhttpsへのインデックスが行われているのであれば、問題ないと考える。
そして、アップデートが完了し、WEBサイトが問題なく表示されることを確認して、新しいリダイレクト設定を追加する。)
kousin.gif:追記
すでにさくらインターネットは通常のhttpsリダイレクトに対応したので、OSアップデートの案内にかかわらず、リダイレクト設定の変更を行っても問題ない。
ドメインのwwwあり、なしいずれかに統一したい場合は、常時SSL化したWordPressのドメイン名を統一させたい:さくらインターネットを参考にする。
kousin.gif:追記2
WordPressの常時SSL化を手動で行った場合、wp-congif.phpにさくらインターネット仕様のコードを追加している。
今回のOSアップデートでは表記したままでも問題ないが、今のうちに削除しておく。
———————————–
if( isset($_SERVER[‘HTTP_X_SAKURA_FORWARDED_FOR’]) ) {
$_SERVER[‘HTTPS’] = ‘on’;
$_ENV[‘HTTPS’] = ‘on’;
$_SERVER[‘HTTP_HOST’] = ‘www.xxxxx.com’;
$_SERVER[‘SERVER_NAME’] = ‘www.xxxxx.com’;
$_ENV[‘HTTP_HOST’] = ‘www.xxxxx.com’;
$_ENV[‘SERVER_NAME’] = ‘www.xxxxx.com’;
}
———————————–
上記のコードが書かれたままだと、さくらインターネットの新機能「ステージング」でテストを行った場合、リダイレクトが起こりテストすることが出来ない。