Apacheのrewriteモジュールを使ってhttpへのアクセスをhttpsに転送する方法。
Contents
設定方法
httpにきたアクセスを、httpsの同じURLに転送するには、.confか.htaccessに次のように記述します。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
httpに接続が来たら、URLに関係なくhttpsのトップページに転送する場合の設定。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST} [R,L]
Apacheモジュールの確認方法
mod_rewriteモジュールが使えるようになっているかは次のコマンドで確認できます。
sudo apache2ctl -M
コマンドを実行して rewrite_module が表示されればrewriteモジュールが使えます。
Loaded Modules: core_module (static) so_module (static) watchdog_module (static) http_module (static) log_config_module (static) logio_module (static) version_module (static) unixd_module (static) access_compat_module (shared) alias_module (shared) auth_basic_module (shared) authn_core_module (shared) authn_file_module (shared) authz_core_module (shared) authz_host_module (shared) authz_user_module (shared) autoindex_module (shared) deflate_module (shared) dir_module (shared) env_module (shared) filter_module (shared) mime_module (shared) mpm_prefork_module (shared) negotiation_module (shared) passenger_module (shared) php5_module (shared) rewrite_module (shared) setenvif_module (shared) socache_shmcb_module (shared) ssl_module (shared) status_module (shared)
Apachaモジュールを有効にするには
rewriteモジュールがロードされていない場合は次のコマンドで有効化出来ます。
sudo a2enmod rewrite