見出し画像

【簡単】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} !on
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よりも前に記述しましょう。

他のところに記述すると、サイトがうまく表示されなかったりします。

参照

本記事の作成にあたり、以下の記事を参考にさせていただいたので詳しく知りたい方はチェックしてみて下さい。

XSERVER Webサイトの常時SSL化
WordPress Codex 日本語版 関数リファレンス/wp redirect

この記事が気に入ったらサポートをしてみませんか?