mod_rewriteでhttpsとhttpを強制変換

error

お問い合わせや会員登録のページだけhttpsで接続し、それ以外のページはhttpにする(httpsで接続させたくない)という場合、mod_rewriteが使えるなら.htaccessに以下のように書くといいよという解説をよく見かけます。

が、実際にこれでは不十分で、contactページから呼んだCSSやJS、画像などがhttpで呼ばれるためにIEで「暗号化されていません」警告が表示されてしまいます。

Chromeに至ってはhttpsから呼ばれたhttpのファイルへは接続を完全に切ってしまうため、CSSやJSが効いていない無残な状態になります。

そこでHTTP_REFERERを取得し、httpsからの呼び出しならhttpsへリダイレクトするというルールを追加することで元のHTMLに手を加えることなくhttpsへの対応を行いました。.htaccessに以下のように記述します。#の行はコメントですので削除して問題ありません。

ディレクトリ名(ここではsingupとcontact)は適宜変更が必要です。SSL対応したいディレクトリ名を記述してください。

AD

Share

Commentsコメント

メールアドレスは公開されません。コメントは必ずご入力ください。

HTMLタグは使用できません。ソースコードを書き込みたい場合はCodetterGistCodePenなどのご利用が便利です。

コメントはまだありません。