6

https を介してサイト全体を実行し、www を強制しようとしています。

wwwまたはhttpsのいずれかを強制するソリューションをいくつか見てきましたが、それらを組み合わせたものもいくつかありましたが、機能するようには見えません。私は通常、リダイレクトループに陥っています。

私が持っている最も近いものは次のとおりですが、まだ十分に近いものではありません:

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

私は欲しいhttps://www.example.com/

http://example.com SUCCESS
https://example.com SUCCESS
http://www.example.com FAIL
https://www.example.com SUCCESS、実際のリダイレクトはありません。

ありがとう

更新
次のコードは、必要なリダイレクトを正常に実行します。

RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

RewriteCond %{ENV:HTTPS} on [NC]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
4

3 に答える 3

6

https と www の強制は、他の提供された回答の組み合わせによって行われます。

これはうまくいくようです:

RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

RewriteCond %{ENV:HTTPS} on [NC]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
于 2012-08-03T19:15:01.060 に答える
1

代わりにこの条件を試してください。サイトをドメインの SSL に強制する必要があります。

RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
于 2012-08-03T12:02:38.283 に答える
0

[OR]条件にフラグを追加してみてください。あなたは本当にwwwhttps も必要としません:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
于 2012-08-01T20:32:19.190 に答える