HTTPS導入済みのWEBサイトでHTTPSでのアクセスを強制する(HTTPでのアクセスをリダイレクトする)

WEBサイトをHTTPS化した場合でも、HTTPとしてアクセスされる可能性は存在します。このページでは、WEBサイトをHTTPS化した後のHTTPアクセスをリダイレクトする方法を解説します。…ぶっちゃけ.htaccessなどを編集するだけです。

もくじ

  • .htaccessを編集してリダイレクトする(簡単)
  • Apacheの設定ファイルを編集してリダイレクトする(やや難)

.htaccessを編集してリダイレクトする(簡単)

要はHTTPでアクセスしてきたユーザーを片っ端からHTTPS側にリダイレクトし、ユーザーがアクセスしようとしているページを表示させればいいわけです。.htaccessに301リダイレクトの設定を書き込み、HTTPでのアクセスを全部HTTPSに飛ばしてしまえば問題は解決されます。HTTPS化したWEBサイトのルートに、以下の内容の.htaccessを配置しましょう。 [VIM] RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301] [/VIM]

これにより、HTTPでアクセスしたユーザーは強制的にHTTPSでのアクセスに切り替えられ、目的のページが表示されます。http://example.com/hoge.phpにアクセスしたら、https://example.com/hoge.phpが表示されるということです。

Apacheの設定ファイルを編集してリダイレクトする(やや難)

VPSサーバーの管理人等、自分でApacheの設定ファイルを書き換えることができるのであれば、Apacheの設定ファイルを編集してリダイレクトさせてもいいでしょう。HTTPS化したWEBサイトの、HTTP側のバーチャルホストについての設定が書かれているファイルを開き、以下のように編集します。 [VIM] #PHPをCGIモードにするためのディレクティブ(本筋とは関係ない) ScriptAlias /php-hoge /var/www/cgi-bin/hoge-cgi/php-cgi #ここから下はHTTP側の設定(本筋とは関係ない) SuexecUserGroup hoge hoge ServerName example.net DocumentRoot /home/hoge/public_html/piyo ErrorLog /var/log/httpd/example.net_error_log CustomLog /var/log/httpd/example.net_access_log combined SetHandler php-cgi Action php-cgi /php-hoge #ここから上はHTTP側の設定 #ここから下を追記する RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301] #ここから上を追記する [/VIM]

もうお分かりかと思いますが、.htaccessで使った設定をそのまま移植しただけですね。後はApacheを再起動すれば設定が適用されます。 [VIM] #文法チェック apachectl configtest #Apache再起動 sudo systemctl restart httpd [/VIM]

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin: