Cuando visito mi sitio en https://example.com, mi navegador responde con ERR_CONNECTION_REFUSED. Tenga en cuenta que todo lo siguiente funciona:

¿Cómo puedo redirigir las solicitudes de https://example.com a https://www.example.com usando .htaccess?

Probé lo siguiente que no parece funcionar:

// .htaccess

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\. [NC]    
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301] 
5
henrywright 19 ago. 2016 a las 17:50

3 respuestas

La mejor respuesta

Sus reglas utilizan la operación AND entre 2 condiciones pero usted OR.

Puede usar esta regla para hacer cumplir tanto www como https:

RewriteEngine On

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

Asegúrese de borrar la memoria caché de su navegador antes de realizar la prueba.


EDITAR: según los comentarios a continuación, solo para el redireccionamiento https://example.com to https://www.example.com, puede usar esta regla:

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
4
anubhava 19 ago. 2016 a las 15:53

La regla que tiene debería funcionar como está.

Desde ERR_CONNECTION_REFUSED, supongo que Apache no está escuchando en el puerto https (443).

Pero como todo lo demás funciona, incluso el redireccionamiento de http://example.com a https://www.example.com, puede haber algún otro problema relacionado con la red, como una configuración de firewall que permite https a través de www.example.com, pero que bloquea a través de example.com. . Debe consultar con su proveedor de servidor.

1
Olaf Dietsche 19 ago. 2016 a las 16:58

Sin www a www con https

RewriteCond %{HTTP_HOST} !^www\. [OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]
0
General Omosco 13 oct. 2020 a las 09:43