Si instaló un certificado SSL para su dominio, su próximo paso debe ser configurar la aplicación para servir 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 utiliza TLS/SSL para cifrar la comunicación entre el cliente y el servidor.

Hay varias ventajas de usar HTTPS sobre HTTP, como:

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

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

Si tiene acceso raíz SSH al servidor Linux donde se ejecuta Apache, la forma preferida es configurar la redirección en el archivo de configuración del host virtual del dominio. De lo contrario, puedes configurar la redirección en la .htaccessficha del dominio. El servidor Apache lee el .htaccessarchivo 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 de HTTPS mediante una interfaz gráfica de usuario.

Redirigir HTTP a HTTPS usando.htaccess

.htaccesses un archivo de configuración por directorio para el servidor web Apache. Este archivo se usa para definir cómo Apache entrega los archivos desde el directorio donde está ubicado y habilita/deshabilita funciones adicionales.

Generalmente, el .htaccessarchivo se encuentra en el directorio raíz del dominio, pero puede tener otros .htaccessarchivos en los subdirectorios.

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

Para redirigir las solicitudes HTTP a HTTPS, abra el .htaccessarchivo 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 capacidades de reescritura y nos permite usar reglas de reescritura.
  • RewriteCond %{HTTPS} off- Comprueba si la conexión es del tipo 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 redirección.
  • RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]- Redirigir todas las solicitudes HTTP a HTTPS, con el código de estado 301 (Movido permanentemente). Esta regla se reescribirá http://example.com/abouthttp://example.com/abouthttp://www.example.com/aboutahttps://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! 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 .htaccessarchivo, no necesita reiniciar el servidor porque Apache lee el archivo en cada solicitud.

Aquí hay otra regla más genérica para redirigir de HTTP a HTTPS:

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

Redirigir HTTP a HTTPS y WWW a no WWW

Se puede acceder a cualquier sitio web en dos URL: con el prefijo www (como www.ejemplo.com ) y sin www (como ejemplo.com). La mayoría de los propietarios de sitios web eligen una versión como dominio preferido y redirigen a ella.

Para redirigir de HTTP a HTTPS y de www a la versión que no es www de su sitio, agregue las siguientes líneas al .htaccessarchivo:

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 verifica si la conexión no es HTTPS y el segundo verifica si la solicitud comienza con wwwSi una de las condiciones es verdadera (el [OR]operador), se ejecuta la regla de reescritura.

Redirigir HTTP a HTTPS y no WWW a WWW

Si prefiere la versión www de su sitio, use 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 .htaccessarchivo para redirigir todo el tráfico HTTP a 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.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.