トップページ > html・CSS > htaccessでhttpからhttpsへリダイレクトする方法!wwwあり・なし統一も一緒に記述
html・CSS

htaccessでhttpからhttpsへリダイレクトする方法!wwwあり・なし統一も一緒に記述

htaccess redirect

仙台の皆様、こんにちは!

2018年7月にリリースされたGoogle Chromeの新バージョン「Chrome68」では、すべてのhttp接続のページに警告が表示される仕様になりました。どんなにいいコンテンツを作っても「警告」が出てしまっては、信頼もガタ落ちです。

これから益々、サイト全体をSSL化して常時SSLでページを表示することが重要性になります。今日は「htaccessでhttpからhttpsへリダイレクトする方法と、wwwあり・なし統一も一緒に記述」する解説します。

httpからhttpsへリダイレクト

まずは、httpからhttpsへリダイレクトします。


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

これでhttp://datena.netにアクセスすると、自動的にhttps://datena.netにリダイレクトされます。

wwwあり・なし統一

続いて、wwwあり・なし統一です。例では「wwwなし」に設定する場合です。


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.datena\.net
RewriteRule (.*) http://datena.net/$1 [R=301,L]
</IfModule>

これでhttp://www.datena.netにアクセスすると、自動的にhttp://datena.netにリダイレクトされるようになります。

両方を記述

それでは、両方記述しましょう。


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.datena\.net
RewriteRule (.*) http://datena.net/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

上記のように記述すれば、http://www.datena.netにアクセスすると、自動的にhttps://datena.netにリダイレクトされるようになります。

これでURL統一は完璧です。

ちなみにWordPressで記述する際には、注意が必要なので下記のページをご覧ください。

おまけ

最初の行にあるIfModule mod_rewrite.cは、何をしているんでしょうか?


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.datena\.net
RewriteRule (.*) http://datena.net/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

これは利用環境でmod_rewriteが利用できるかどうかを確認しています。「mod_rewriteが利用できる環境ならば・・・」という感じです。

mod_rewriteが利用できない環境でmod_ rewriteのコードを記述するとエラーが発生してしまうので、このようにmod_ rewriteが利用できるか確認を行なっているわけです。

まとめ

冒頭でも書きましたが、これから常時SSLが重要になることは明白です。最近は無料でSSL化できるサービス(Let’s Encrypt)も登場し、それを利用できるレンタルサーバーも増えました。

常時SSL化した際は、必ずhtaccessでURLを統一しましょう!

それではまた!仙台・宮城でのホームページ制作やサイトリニューアルならダテナまで!

関連記事

仙台でのWEB制作ならダテナまで
ダテナは、宮城のWEB制作会社が運営しています。当サイトは宮城県、特に仙台に特化した地域情報を掲載しています。仙台・宮城の方にとって有意義なサイトであればと思います。