【簡単】WordPressでhttpからhttpsにリダイレクトする方法
こんにちはワダショウゴです。
本記事では、WordPressサイトでhttpをhttpsにリダイレクトする方法について解説します。
サイトURLを常時SSL化するには、使用しているサーバーで独自SSLの申込みを済ませておく必要があります。
必ず独自SSLの申込みをしてから下記手順を実行して下さい。
今回は以下2つの方法について解説します。
- functions.phpを編集してリダイレクト
- .htaccessを編集してリダイレクト
functions.phpを編集してリダイレクトする方法
WordPressのfunctions.php
に以下のコードを記述して下さい。
Code01(PHP)
function force_https_redirect(){
if(!is_ssl()){
wp_safe_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301);
}
}
add_action ('template_redirect', 'force_https_redirect', 1);
ソースコードの解説
is_ssl関数
は、現在のリクエストがSSLで行われているかどうかを判断する関数です。
if(!is_ssl())
とすることで、現在のリクエストがSSLで行われていない場合、すなわちhttpからのアクセスの場合に中身の処理を実行します。
wp_safe_redirect関数
を使って恒久的なリダイレクト(301リダイレクト)をしています。
外部サイトにリダイレクトする場合は、wp_safe_redirect関数
の代わりに、wp_redirect関数
を使いましょう。
これらの関数の使い方は、WordPress日本語リファレンスを参照して下さい。
最後にアクションフックで定義したforce_https_redirect()
という独自の関数を実行します。
.htaccessを編集してリダイレクトする方法
独自SSLの設定が完了した後は、サーバー内の.htaccess
というファイル内に以下のコードを記述します。
Code02
# 301 Redirect
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
.htaccessを編集するときの注意点
.htaccessの場所に気をつけよう
編集する.htaccessファイルは、public_html
というフォルダの直下の.htaccessファイルです。
同じ階層にwp_content
のフォルダがあるはずなので、その階層の.htaccessファイルを編集しましょう。
.htaccessファイル内の記述箇所に気をつけよう
Code02を記述する場所ですが、WordPressサイトの場合は.htaccessファイル内に下記の記述があります。
(※Code02をここに記述)
# BEGIN WordPress ...
<IfModule mod_rewrite.c>
...
# BEGIN WordPress
よりも前に記述しましょう。
他のところに記述すると、サイトがうまく表示されなかったりします。
参照
本記事の作成にあたり、以下の記事を参考にさせていただいたので詳しく知りたい方はチェックしてみて下さい。