2012-08-01 11 views
6

Estoy intentando ejecutar todo mi sitio a través de https y forzar www.Forzar SSL y WWW juntos usando htaccess

He visto una serie de soluciones que proporcionan forzar www o https, e incluso algunas combinadas, pero parece que no puedo hacer que funcione. Normalmente me encuentro en un bucle de redirección.

El más cercano que tengo es la siguiente, pero no es lo suficientemente cerca todavía:

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

necesito https://www.example.com/

http://example.com SUCCESS
https://example.com SUCCESS
http://www.example.com FAIL
https://www.example.com SUCCESS, aunque no hay real redirección.

Gracias

actualización
El código siguiente realiza con éxito el cambio de dirección que requiero:

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

Si ha encontrado una solución como su actualización indica, por favor, publicarlo como una respuesta a sí mismo y lo aceptan. Ayuda a mantener la naturaleza de preguntas y respuestas del sitio. – bPratik

Respuesta

5

forzar https y www se realiza por una combinación de otras respuestas proporcionadas.

Esto parece funcionar:

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

Trate de añadir una bandera [OR] a sus condiciones. ¿De verdad quieres ya sea sin www o no https:

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

Eso funciona, la URL resultante es lo que quiero, aunque veo el mensaje de bucle de redireccionamiento, no el sitio. –

+0

@JasonVarga no estoy seguro de por qué esto causaría un bucle de redireccionamiento cuando las reglas originales no lo hicieron –

1

probar este estado en su lugar, se debe forzar el sitio en SSL para su dominio

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

Esto fuerza a SSL pero no fuerza a www. He usado una combinación de tu regla con otra para redirigir con éxito cómo quiero. Gracias. –

Cuestiones relacionadas