LoginSignup
0
2

More than 5 years have passed since last update.

さくらサーバーのWordPressを常時SSLにしたときの備忘録

Posted at

さくらサーバーにて、SSL化した際にリダイレクト処理でwww有りにさせたくて悩んだので、その覚書です。

WordPress側では、「さくらのレンタルサーバ 簡単SSL化プラグイン」でSSL化は済みますが、リダイレクト処理がどっちでも使えるものなので、ここは書き直す必要がある。

プラグインを有効化して、設定が済んださいの.htaccessです。

.htaccess
# BEGIN Force SSL for SAKURA
# RewriteしてもHTTPS環境変数を有効にする
SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1

# 常時HTTPS化(HTTPSが無効な場合リダイレクト)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteCond %{REQUEST_URI} !/wp-cron\.php$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# END Force SSL for SAKURA

変更した.htaccess

.htaccess
# BEGIN Force SSL for SAKURA
# RewriteしてもHTTPS環境変数を有効にする
SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1

# 常時HTTPS化(HTTPSが無効な場合リダイレクト)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteCond %{REQUEST_URI} !/wp-cron\.php$
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$
RewriteRule .* https://www.example.com%{REQUEST_URI} [R=301,L]

# wwwが付いてなかったら、wwwを付けるようにする
RewriteCond %{ENV:HTTPS} on
RewriteCond %{REQUEST_URI} !/wp-cron\.php$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$
RewriteRule .* https://www.example.com%{REQUEST_URI} [R=301,L]
</IfModule>
# END Force SSL for SAKURA

HTTPSがONの時にリダイレクトがかからなかったので、ONの状態のルールを複製した。
あと、RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$これもちゃんと追加する。これないとリダイレクトループが発生します。

.htaccessを編集したあと、今度はwp-config.phpファイルにサーバー変数を書く必要があるので、それも追加する。

wp-config.phpの編集

wp-config.php
if (isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']))
{
    $_SERVER['HTTPS']       = 'on';
    $_SERVER['HTTP_HOST']   = 'www.example.com';
    $_SERVER['SERVER_NAME'] = 'www.example.com';
    $_ENV['HTTPS']          = 'on';
    $_ENV['HTTP_HOST']      = 'www.example.com';
    $_ENV['SERVER_NAME']    = 'www.example.com';
}

久々にさくらサーバーさんで構築したので、仕様が全然分かってなかった(´・ω・)

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2