.htaccess と mod_rewrite による HTTP と HTTPS リダイレクトのまとめ
スポンサード
secure/ディレクトリに以下の .htaccess を設置します。
この条件の時は
最終行の
ちなみに、
ルート直下に以下の .htaccess を設置します。
スポンサード
サイトの中で、HTTPS でアクセスさせたいディレクトリ「secure/」があるとして、HTTP アクセスを強制的に HTTPS でリダイレクトする方法のまとめです。
サーバがSSLに対応しており、.htaccess 、mod_rewrite が使えれば HTTP アクセスを SSLでリダイレクトすることが可能ですし、またその逆(SSL → HTTP でリダイレクト)も可能です。
目次
secure/ディレクトリを HTTPS でリダイレクト
まずは secure/ディレクトリを SSL に対応させるための .htaccess です。secure/ディレクトリに以下の .htaccess を設置します。
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule>
RewriteCond %{HTTPS} off
は「SSLが無効の場合」という条件で、この条件の時は
RewriteRule
で HTTPS でリダイレクトさせています。最終行の
[R,L]
は、[R]は「redirect」で、[L]は「last」の意味です。[L]
と書けば「ここで RewriteRule はおしまい」となります。ちなみに、
[R]
は「302リダイレクト」ですが、[R=301] と書けば「301リダイレクト」になります。SSL アクセスを HTTP でリダイレクト
先とは逆で、SSL アクセスを http:// でリダイレクトする方法です。ルート直下に以下の .htaccess を設置します。
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule>https:// でアクセスされたページを http:// でリダイレクトする感じです。
スポンサード
コメント