2016-10-26 6 views
1

httpからhttpsへのすべてのトラフィックをApacheサーバーでリダイレクトする必要があります。そして、私は(WWWなし - > WWWで)私の実際のリダイレクトを保持したいHTTPからHTTPSへリダイレクトして、古いリダイレクトをApacheで保存する

RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L] 

RewriteCond %{HTTP_HOST} ^domain.com [NC] 
RewriteRule (.*) https://www.domain.com/$1 [R=301,L] 

をWWWリダイレクトでこのhtaccessを私が持っているHTTP-> HTTPSのリダイレクトとせずにWWW->で、同じではありません両方を行います時間。

私はこのリダイレクトを必要とする:

http://domain.com - >https://www.domain.com

http://domain.com/foo/bar - >https://www.domain.com/foo/bar

おかげ

答えて

1

あなたは、単一のリダイレクトルールでの2つの条件を組み合わせること[OR]句を使用することができます。

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] 
RewriteRule^https://www.domain.com%{REQUEST_URI} [R=301,L,NE] 
この変更をテストする前に

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

クリアブラウザのキャッシュ:今、あなたはこのルールにドメイン名をハードコーディング避けたい場合は、次に使用

関連する問題