httpアクセスをhttpsにリダイレクトする .htaccess



SSLを導入したらサイト全体をSSLにしちゃった方が何かと楽ですよね。
GoogleでもSSLサイトは評価の対象です。

HTTPS をランキング シグナルに使用します
https://webmaster-ja.googleblog.com/2014/08/https-as-ranking-signal.html

でもすでにインデックスされているページからのアクセスや名刺にURLが書いてあったりするとhttp://~からアクセスされます。

http://~でアクセスされたのを強制的にhttps://にリダイレクトするには。
.htaccessの設定で簡単にできます。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

特定のページだけをSSLにしたい場合
hoge.html,hoge2.htmlだけをSSLリダイレクトしたい場合の例

RewriteEngine on
 
RewriteCond %{REQUEST_URI} .*/hoge.html$ [OR]
RewriteCond %{REQUEST_URI} .*/hoge2.html$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
 
RewriteCond %{REQUEST_URI} !(.*/hoge.html$)
RewriteCond %{REQUEST_URI} !(.*/hoge2.html$)
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

逆に特定のページだけを非SSLにしたい場合

RewriteEngine on

RewriteCond %{REQUEST_URI} ^/hoge.html$ [OR]
RewriteCond %{REQUEST_URI} ^/hoge2.html$
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteCond %{REQUEST_URI} !(^/hoge.html$)
RewriteCond %{REQUEST_URI} !(^/hoge2.html$)
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

こちらのページを参考にさせていただきました。
.htaccessだけでSSL対応するには
http://www.meibinlab.jp/nishijima/archives/54

シェアする

  • このエントリーをはてなブックマークに追加

フォローする