HTTPS導入済みのWEBサイトでHTTPSでのアクセスを強制する(HTTPでのアクセスをリダイレクトする)
投稿日:2017年03月12日
最終更新日:
もくじ
- .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
もうお分かりかと思いますが、.htaccessで使った設定をそのまま移植しただけですね。後はApacheを再起動すれば設定が適用されます。 [VIM] #文法チェック apachectl configtest #Apache再起動 sudo systemctl restart httpd [/VIM]