2017-11-09 10 views
0

Stack Overflowのおかげで、URLにwwwとhttpsを強制的に入れるためにhtaccessに次のようなことがあります。それフォーク罰金:.htaccess mod_rewrite:ローカルではなくhttpsとwwwを強制します。

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule ^(.*) https://www.%{SERVER_NAME}%{REQUEST_URI} [L,R=301] 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] 

今 - 私の地元的環境のために - 私は、私は次の行を追加 Apache mod_rewrite: force www only if not in localhostこの記事によると、フォーム「local.name.de」

のURLを除外したいです:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !=local #new line 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule ^(.*) https://www.%{SERVER_NAME}%{REQUEST_URI} [L,R=301] 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] 

しかし、動作しません。私はまた成功なしでこれを試みた:

RewriteCond %{HTTP_HOST} !=local.name.de 

私にこれを助けてもらえますか?おかげで終わり

+1

両方出RewriteConds –

+0

の上、 'するRewriteCond%{HTTP_HOST}^local'の行を追加します。どうもありがとうございました。今、wwwは追加されませんが、それでもhttpsを強制します。 'RewriteCond%{HTTPS} off'の前にもう一度同じ行を追加すると助けになりません。 – Phantom

+0

ブラウザに301リダイレクトがキャッシュされている可能性があります。きれいなブラウザやコマンドラインから試すことができます(例えばcurl -v http:// local.name.de'など) –

答えて

0

が、これは動作します!

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^local 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule ^(.*) https://www.%{SERVER_NAME}%{REQUEST_URI} [L,R=301] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} !^local 
RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] 
関連する問題