.htaccessだけでSSLフォームがあるサイトに対応する方法


ホームページを制作して問い合わせフォームにSSLを使用してる場合って、問い合わせのページをSSLにするとサイト全体が相対パスの場合、トップページに移動してもSSLのままになってしまうことがある。

トップページ→ http://example.com/
問い合わせページへ→ https://example.com/contact/
トップページへ戻る→ https://example.com/
となってしまう。

それを避けるためにはホームページ制作の際に全てフルパスで書く等の対策をしますが、その場合Dreamweaverでパスを認識してくれず、ファイル名を変更した場合にリンク先を自動で変更してくれなかったり、少し不便が生じる。

そこで相対パスで書いてても、.htaccessを使用することによって問い合わせフォームを開いてるときはSSLでそれ以外のページは通常ページとして表示することが可能。

方法はPUBLIC内で上記方法を利かせたいディレクトリに(全ページならルートディレクトリ).htaccessを設置する。

.htaccessファイルは

RewriteEngine on
// /contact/index.htmlと/contact/mail.phpはsslに
RewriteCond %{REQUEST_URI} .*/contact/index.html$ [OR]
RewriteCond %{REQUEST_URI} .*/contact/mail.php$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
// /contact/index.htmlと/contact/mail.php以外は通常ページに
RewriteCond %{REQUEST_URI} !(.*/contact/index.html$)
RewriteCond %{REQUEST_URI} !(.*/contact/mail.php$)
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

下記ホームページに詳しく載っています。
http://www.meibinlab.jp/nishijima/archives/54