2012-08-01 14 views
6

Próbuję uruchomić całą witrynę przez https i wymuszam www.Wymuś połączenie SSL i WWW za pomocą htaccess

Widziałem wiele rozwiązań, które wymagają wymuszania strony www lub https, a nawet kilku połączonych, ale nie mogę sprawić, że zadziałają. Zwykle znajduję się w pętli przekierowania.

Najbliżej mam jest następujący, ale to nie jest blisko jeszcze tyle:

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

muszę https://www.example.com/

http://example.com SUCCESS
https://example.com SUCCESS
http://www.example.com FAIL
https://www.example.com SUCCESS, chociaż nie ma rzeczywisty przekierowanie.

Dzięki

Aktualizacja
Poniższy kod z powodzeniem wykonuje przekierowanie I wymagają:

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] 
+0

Jeśli znalazłeś rozwiązanie jako aktualizację sugeruje, proszę umieszczać je jako odpowiedź siebie i zaakceptować. Pomaga w utrzymaniu Q & A charakteru witryny. – bPratik

Odpowiedz

5

wymuszeniem szyfrowanego protokołu http i www odbywa się poprzez kombinacja innych dostarczonych odpowiedzi.

To wydaje się działać:

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] 
0

spróbować dodać [OR] flagi do swoich warunków. Naprawdę chcesz albo bez www lub żadnych https:

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

To działa, wynikowy adres URL jest tym, czego chcę, chociaż widzę komunikat przekierowania - a nie stronę. –

+0

@JasonVarga nie wiem, dlaczego spowodowałoby to przekierowanie pętli, gdy oryginalne reguły nie byłyby –

1

Spróbuj tego warunku zamiast powinno zmusić stronę do SSL dla domeny

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

Wymusza to SSL, ale nie wymusza adresu www. Użyłem kombinacji twoich reguł z innym, aby skutecznie przekierować, jak chcę. Dzięki. –

Powiązane problemy