解 説
httpsの「s」はサイトのSSL化を表しています。SSLとは「セキュアソケットレイヤー」の略で情報の送受信が暗号化される仕組みであり、SSLによってより安全なデータ送信を行う事ができます。今回はこのSSLを導入後、通常のhttp://〜へアクセスした際に、強制的にhttps://〜(SSLで暗号化されたサイトページ)に転送する設定をご紹介します。設定にはいくつかパターンがあり、いずれも.htaccessファイルに記述を行うことで設定できます。
1httpからhttpsへ301リダクレクトさせる場合【サイト全体を対象】
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
2httpからhttpsへ301リダクレクトさせる場合【一部のディレクトリを対象】
RewriteEngine On RewriteCond %{REQUEST_URI} ^/特定のディレクトリ名/ RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
上記の /特定のフォルダ名/ を指定することで、特定のディレクトリのみhttpsへの301リダイレクトをかけることができます。
例えば、お問い合わせフォームの/contact/ディレクトリのみSSLをかける、といったケースに適応できます。
3WordPressのSSLでは、.htaccessの記述順序に注意!
# httpsへリダイレクト # BEGIN WordPressより後に書くとトップ(ドメイン)ページのみ、前に書くと全ページに適応RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # BEGIN WordPressRewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
wordpressサイトの場合、ルートディレクトリには既に.htaccessファイルが生成されていますので、そのファイルにリダイレクト設定を追記していきます。
【注意】この場合のリダイレクトの記述については# BEGIN WordPress
よりも前に記述しなければいけません。
後に書いてしまうと、ドメインのみでアクセスした場合以外は、WordPressのリダイレクトルール(# BEGIN WordPress
~ # END WordPress
)が適用されて、
[L]
フラグで .htaccess の実行が終了してしまうからです。
.htaccessファイルに上記を記述します。この設定では、ページがhttpsでない場合、httpsへ301リダイレクトするという指示になります。
301リダイレクトを設定する事でGoogleのページに対する評価を引き継ぐことができます。
WordPressサイトの場合は、WordPressフォルダのトップ階層に.htaccessファイルがありますが、
より上層のフォルダ(ルート直下など)に.htaccessファイルがある場合には、そのファイルに上記を記載します。
※サーバーの仕様によってルート直下に.htaccessが自動生成されている場合がありますのでご注意ください。