【.htaccess】簡単にhttpをhttpsにリダイレクトさせるシンプルなコード
せっかくSSL化したのにhttpでアクセスできてしまうのはよくない。
あとトップページはhttpsにリダイレクトされるのに、個別記事やカテゴリーページなど下層ページはhttpでアクセスできてしまったりする。
そうなってしまわないように、.htaccessに以下のコードを記述することでhttpが全てhttpsに301リダイレクトされるようになる。
[php]
# BEGIN https redirect
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# END https redirect
[/php]
.htaccessのどこにコードを書くか
コードを書く場所も大切。
WordPressでphpやcssを触っているとコードを下に書いた方がいい気がするけど、.htaccessの場合は上に書いたコードが優先される。
具体的な場所で言うと、WordPressをインストールしたら自動的に記載される「#BEGIN WordPress」から始まるコードの上に書いておけば大丈夫。
つまりこんな感じになる。
[php]
# BEGIN https redirect
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# END https redirect
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
[/php]
Mixhostとか完全にSSL化対応してくれてるのになんでデフォルトでこのコード入れてくれないんだろう?