2011-12-07 14 views
0

mod_rewriteを使用して2ページにHTTPSを使用させ、他のすべてのページはHTTPのままにしておきます。現在、私は必要なページにHTTPSを強制的に強制することができますが、他のすべてのページをHTTPに変更しようとすると、HTTPSページが安全でなくなります。これは、ルールが何らかの理由でHTTPSページがロードされているアセットのURLを変更しているためです。htaccessで選択ページのセキュリティ保護されていないサーバーを強制的に使用する

アイデア?ここで私が作業している.htaccessファイルです。 (ENVことに注意してください:HTTPS方法が私のホスト上で必要とされる)

# FORCE HTTPS (WORKS JUST FINE) 
RewriteCond %{ENV:HTTPS} !on [NC] 
RewriteCond %{REQUEST_URI} ^(/index\.php|)/(donate|achdebit)/?$ 
RewriteRule ^(.*)$ https://www.site.org/$1 [R,NC,L] 

# FORCE HTTP (IF ADDED, BREAKS THE SITE) 
RewriteCond %{ENV:HTTPS} on [NC] 
RewriteCond %{REQUEST_URI} !^(/index\.php|)/(donate|achdebit)/?$ 
RewriteRule ^(.*)$ http://www.site.org/$1 [R,NC,L] 

答えて

0

私はあなたが二番目のルールは、安全なページ要求をすることを資産(CSS/JSなど)を強制することを推測するとき、あなたが正しいと信じていますhttpにリダイレクトされます。 Safariがうまく機能しているようですが、FirefoxとIE 9の停止をなどの安全なHTTPSを認識

#only redirect requests that are not for existing files 
RewriteCond %{REQUEST_URI} !\.(css|js|png|gif|etc) [NC] 
+0

して上記#NEW置き換えることで、これは以下の

# FORCE HTTP (IF ADDED, BREAKS THE SITE) RewriteCond %{ENV:HTTPS} on [NC] RewriteCond %{REQUEST_URI} !^(/index\.php|)/(donate|achdebit)/?$ #NEW# only redirect requests that are not for existing files RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ http://www.site.org/$1 [R,NC,L] 

を追加したり、明示的に資産を除外しないようにするには...私はそれが試みると言うことができる、それは1秒間に安全なサインを示してからそれを取り除くことである。 URLはHTTPSのURLであり、セキュリティで保護されたサインを表示しようとしていません。それは完全に削除されました。 –

関連する問題