2017-12-11 25 views
1

私は同じことをしたい複数のドメインを持っています。ドメインexample.comを手に入れよう。.htaccesはhttps:// www。にリダイレクトします。 1つのリダイレクトの代わりに

いつもhttps://www.[mydomain]にリダイレクトしたいです。

この場合、https://www.example.comです。私はリダイレクトする必要が

https://example.com 

http://www.example.com 

http://example.com 

https://www.example.com 

にそうするためには、私はこのコードを持っている:

https://example.comについては
RewriteCond %{HTTPS} off 
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

http://www.example.comリダイレクトがhttps://www.example.comに直接です。

しかしhttp://example.comリダイレクトにはhttps://www.example.comに、代わりにhttps://www.example.comに直接行くのその後https://example.comに行くと。 2つのリダイレクトがあります。

なぜですか?私は間違って何をしていますか?

答えて

1

ここには2つのオプションがあります。ブラウザのキャッシュや使用をクリアするために覚えている選択したどのようなオプション

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 

RewriteCond %{HTTPS} off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 

RewriteCond %{HTTP_HOST} !^www\. [NC,OR] 
RewriteCond %{HTTPS} !on 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://www.%1%{REQUEST_URI} [R=301,L,NE] 

もないとこれにごルールの順序を変更します。

は、このような両方のリダイレクトのための単一のルールを使用しますテスト用の新しいブラウザ。

+1

こんにちは、ありがとう。 「より良い」ものは何ですか? – David

+0

私は最初の方が好きです。なぜなら、理論的には、mod_rewriteがそれをより速く実行するためです。 – anubhava