ニッシー
1990年生まれ
血液型 O型

こんにちは。ITブログアルケーナム管理人のニッシーです。

詳細プロフィールへ

お問い合わせへ






2019-01-25

.htaccess を使って http によるアクセスを https にリダイレクト




httpsの設定を終えて、いざ自分のサイトにアクセスしてみたら、http と https の両方で表示できてしまう状態の方もいるのではないでしょうか?


今回は、http でアクセスがあった場合、https でのアクセスにリダイレクトさせる方法を見てみたいと思います。










http を https にリダイレクト



例えば、http://hogeFuga.com」でサイトにアクセスされたときにhttps://hogeFuga.com」とアクセスされたものとしてサーバに認識させることをいいます。


この記述によって、「http」でサイトにアクセスされた場合でも、自動的に「https」通信にリダイレクトします。


記述例1:
1 RewriteEngine On
2 RewriteBase /
3  
4 RewriteCond %{HTTPS} off
5 RewriteRule ^(.+)$ https://%{HTTP_HOST}%{REQUEST_URI} [R]




各行の説明



1 RewriteEngine On


.htaccessの始めに記述します。


これを省略したり、「Off」と記述していると.htaccessが機能しません。



2 RewriteBase /


どのディレクトリから.htaccessの記述を適用するかパスを指定します。


「/」は、index.html などのブラウザにページ内容を表示するファイルが入っているディレクトリ(ルートディレクトリ)を表しています。


.htaccessが、ルートディレクトリにあ場合、この「RewriteBase」の記述は省略してもOKです。



4 RewriteCond %{HTTPS} off


httpsでないときという意味です。


「RewriteCond」の「Cond」は「Condition」の略省です。書き換える条件を記述します。



5 RewriteRule ^(.+)$ https://%{HTTP_HOST}%{REQUEST_URI} [R]


URLを「https」に書き換えよという意味です。


正規表現で、「^(.+)$」は、任意(何でもいい)の文字列を表します。あらゆる文字列に対応すると言う意味です。


変数「%{HTTP_HOST}」は、URLにおけるドメイン名やIPアドレスの部分を格納したものになります。


例えば、「http://hogeFuga.com/index」の「hogeFuga.com」の部分のことです。


また、ドメインを取得していない場合は、「http://192.168.3.2/index」の「192.168.3.2」のIPアドレス部分のことです。


変数「%{REQUEST_URI}」は、「http:////hogeFuga.com/index」の「index」の部分を指します。


「[R]」は、外部リダイレクトさせるフラグです。


この記述を省略すると、httpでのアクセスを自動的にhttpsにリダイレクトしませんでしたので、注意してください。





最後に



今回はhttpsへのリダイレクトについてでした。


.htaccessでのこの設定は、あくまでも、既にhttpsへの移行を終えている状態の最後の仕上げですから、httpsへの設定は別途行ってください。


それでは、続きはまた次回にご期待を!









プロフィール

ニッシー
1990年生まれ
血液型 O型

こんにちは。ITブログアルケーナム管理人のニッシーです。

詳細プロフィールへ

お問い合わせへ