2013-10-07 13 views
7

これは私が現在行っているスクリプトです。どのようにしてスクリプトがhttpにすべてのトラフィックを強制するのですか、現在はまったく反対です。.htaccessを使用してhttpを強制する

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

私もこれを試してみたし、それが

RewriteEngine On 
RewriteCond %{HTTP} !=on 
RewriteRule^http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

を動作しませんでした私は、このエラーました:

Too many redirects occurred trying to open www.blankpage.com .

答えて

25

あなたはHTTPSがにであることを確認したい:

RewriteEngine On 
RewriteCond %{HTTPS} on 
RewriteRule^http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

オン(%{HTTPS} on)の場合は、http://にリダイレクトします。 %{HTTP}と呼ばれるmod_rewrite変数はありません。%{HTTPS}のみが「オン」または「オフ」になります。

あなたはあまりにも多くのため、エラーがあるリダイレクトなった理由:要求はHTTPまたはHTTPSであれば

RewriteCond %{HTTP} !=on 

は変数が存在しないため、それは決して、常にどんなに真でありますは "on"に等しくなります。したがって、要求がhttpであっても、同じURL(http)にリダイレクトされ続けます。

+0

説明ありがとうございます!それは理にかなっている! –