【ワードプレスサイト】常時SSL化されたサイトでhttpでアクセスしてもhttpsへリダイレクトさせる設定【.htaccess】
常時SSL化は、ウェブサイト運営でやっておかなければならない設定です。
サーバーによっては、簡単に無料SSL証明書「Let’s Encrypt」(レッツエンクリプト)等を簡単に、ほぼワンクリックで設定可能になっているところも多くなっています。
今回は、すでにSSLの設定は終わっている状態で、httpでアクセスされた場合でもhttpsへリダイレクトさせる.htaccess(ドットエイチティーアクセス)の設定の備忘録。サイトはワードプレスで構築しているサイトという設定です。
.htaccessでリダイレクトの処理を追加する
ワードプレスの場合、ルートディレクトリにそのままファイルをインストールするのではなく、サブディレクトリを作ってインストールすることが多いです。
例えば、example.com/wordpress/ など
その際、ワードプレス管理画面の【設定】→【一般設定】でサイトアドレス(URL)をサブディレクトリ無しのurlに変更する。.htaccessやindex.phpをコピー、編集してルートディレクトリにアップロードなどの作業が必要になります。
ですので、すでにルートディレクトリに.htaccessがあるものとして…
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
を追加すればOK!
注意する点は、
# BEGIN WordPress ~ # END WordPress
で囲われているワードプレスのリダイレクトルールがある。
RewriteRule . /index.php その下(# END WordPress の下)に追加してしまうと、.htaccessの実行が終了してしまうようです。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
こんな感じで追加しても、私は大丈夫でした。
参考にさせて頂いたサイト
Cherry Pie Web様
WordPress タイトルの下に注意事項(コメント)を挿入するアクションフック