先日.htaccessだけでSSLフォームがあるサイトに対応する方法 という記事を書きましたが実践したサイトをたまたまGoogle Chromeで除くとレイアウトが崩れてる(汗)画像が見えていない(滝汗)。
どうもGoogle Chromeではhtmlやphpファイル以外にもcssやjpegファイルまでリダイレクトしてるみたいですね。
それで、httpsにいくとcssやjpeg、gifがhttpから読み取ろうとするのでGoogle Chromeが「安全でない」とブロックしてしまう。
するとcss利かない→レイアウト崩れ。画像が見れないという現象が起きるよう。
解決策を探してたら丁寧なサイトがありました。
Chromeで画面が真っ白になってしまう。.haccsessでSSLを制御している時は注意
なかなか丁寧で親切なサイトです。
方法としては前回のソースからすると
// /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 %{REQUEST_URI} !(.*css$)
RewriteCond %{REQUEST_URI} !(.*jpg$)
RewriteCond %{REQUEST_URI} !(.*png$)
RewriteCond %{REQUEST_URI} !(.*gif$)
RewriteCond %{REQUEST_URI} !(.*js$)
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
となります。
これで解決した。
IE6も変になってたみたいで直って良かった(^^)/