Cómo forzar HTTPS usando htaccess

1 mar 2021 3 min di lettura
Cómo forzar HTTPS usando htaccess
Indice dei contenuti

Introducción

Si ha instalado un certificado SSL para su dominio, su siguiente paso debería ser configurar la aplicación para que sirva todo el tráfico web a través de HTTPS.

A diferencia de HTTP, donde las solicitudes y respuestas se envían y devuelven en texto sin formato, HTTPS usa TLS /SSL para cifrar la comunicación entre el cliente y el servidor.

Los beneficios de usar HTTPS sobre HTTP son numerosos:

  • Todos los datos están encriptados en ambas direcciones. Como resultado, la información confidencial no se puede leer si se intercepta.
  • Chrome, Firefox y todos los demás navegadores populares marcarán su sitio web como seguro.
  • HTTPS le permite utilizar el protocolo HTTP /2, que mejora significativamente el rendimiento del sitio.
  • Google prefiere los sitios web HTTPS. Su sitio se clasificará mejor cuando se ofrezca a través de HTTPS.

La redirección se puede configurar a nivel de aplicación o servidor. Este artículo explica cómo redirigir el tráfico HTTP a través de HTTPS utilizando el archivo .htaccess

Si tiene acceso de raíz SSH al servidor Linux que ejecuta Apache, el método recomendado es configurar la redirección en el archivo de configuración del host virtual del dominio. De lo contrario, puede configurar la redirección en el archivo .htaccess El servidor Apache lee el .htaccess en cada solicitud de página, lo que ralentiza el servidor web.

La mayoría de los paneles de control, como cPanel, le permiten forzar la redirección HTTPS mediante una interfaz gráfica de usuario.

Redirigir HTTP a HTTPS usando .htaccess

.htaccess es un archivo de configuración basado en directorios para el servidor web Apache. Este archivo se usa para definir cómo Apache sirve los archivos desde el directorio donde está ubicado y para habilitar /deshabilitar funciones adicionales.

Normalmente, el .htaccess se encuentra en la raíz del dominio, pero es posible tener otros .htaccess en subdirectorios.

Puede editar el .htaccess (o crear uno nuevo) a través de SSH o FTP.

Para redirigir las solicitudes HTTP a través de HTTPS, abra el .htaccess y agregue el siguiente código:

RewriteEngine On
 RewriteCond %{HTTPS} off
 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Esto es lo que hace cada línea de código:

  • RewriteEngine On: habilita las funciones de reescritura y nos permite usar reglas de reescritura.
  • RewriteCond %{HTTPS} off: comprueba si la conexión es del tipo de solicitud HTTP. Cuando se cumple la condición, se ejecuta la siguiente línea. Solo queremos redirigir las solicitudes HTTP. Si omite esta condición, obtendrá un bucle de redireccionamiento.
  • RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] - Redirige todas las solicitudes HTTP a través de HTTPS, con el código de estado 301 (movido permanentemente). Esta regla se reescribirá de http://example.com/about a http://example.com/about o de http://www.example.com/about a https://www.example.com/about.

Si hay otras reglas en el archivo, agregue el código de reescritura en la parte superior del archivo.

¡Eso es todo! Después de agregar estas líneas, guarde el archivo y actualice su navegador. Todas las solicitudes HTTP deben redirigirse a HTTPS.

Al editar el .htaccess, no es necesario reiniciar el servidor, ya que Apache lee el archivo en cada solicitud.

Aquí hay otra regla más general para redireccionar de HTTP a HTTPS:

RewriteEngine On
 RewriteCond %{HTTPS} off
 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  • HTTP_HOST es el nombre de host solicitado por el visitante cuando accede al sitio. Esta variable representa su nombre de dominio.
  • REQUEST_URI es el URI utilizado para acceder a la página.

Redirigir HTTP a HTTPS y WWW a no WWW

Puede acceder a cualquier sitio web en dos URL: con el prefijo www (como www.example.com) y sin www (como example.com). La mayoría de los propietarios de sitios web eligen una versión como su dominio preferido y lo redireccionan, esta es una buena práctica.

Para redirigir de HTTP a HTTPS y de www a la versión sin www de su sitio, agregue las siguientes líneas al archivo .htaccess

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

Aquí tenemos dos condiciones. El primero comprueba si la conexión no es HTTPS y el segundo comprueba si la solicitud comienza con www. Si una de las condiciones es verdadera (el [OR] ), se ejecuta la regla de reescritura.

Redirigir HTTP a HTTPS y no WWW a WWW

Si prefiere la versión www de su sitio, utilice la siguiente regla para redirigir de HTTP a HTTPS y de no www a www.

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

Conclusión

Le mostramos cómo editar su .htaccess para redirigir todo el tráfico HTTP a través de HTTPS.

Si tiene acceso a los archivos de configuración de Apache, para un mejor rendimiento, debe forzar HTTPS creando una redirección 301 en el host virtual del dominio.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.