Forzar tu sitio a cargar de forma segura con un archivo .htaccess

 

Generalidades

Después de haber agregado un certificado SSL a tu dominio DreamHost redirige automáticamente la URL que usan los visitantes para ver tu sitio de HTTP a HTTPS. La S asegura que tu conexión esté encriptada. Por ejemplo:

  • https://example.com

No hay nada de tu parte que debas actualizar para obligar a tu sitio a usar la URL segura. Sin embargo, en algunos casos especiales, puede ser necesario que crees tu propio archivo de configuración personalizado para forzar la redirección de HTTP a HTTPS.

Agregar código personalizado solo es necesario si tu sitio web requiere un código específico para forzar el redireccionamiento. Si es así, primero deberás desactivar la redirección automática en tu panel.

Una vez deshabilitado, puedes continuar agregando tu archivo .htaccess personalizado.

Esta página enumera ejemplos de cómo hacer esto dependiendo de cómo esté alojado tu sitio. Revisa cualquiera de los siguientes artículos para obtener instrucciones sobre cómo crear/editar un archivo .htaccess en tu servidor.

¿Dónde debería ser creado el archivo .htaccess?

El archivo .htaccess debería estar ubicado en el directorio primario del sitio web. Cambia username a tu usuario Shell y example.com a tu sitio website. Por ejemplo:

/home/username/example.com

También puedes confirmar el directorio web del sitio en el panel.

  1. Navega a la página Administrar Sitios Web.
  2. Da clic en el botón Administrar para abrir la página Configuraciones de Dominios, la cual te permite ajustar múltiples configuraciones de tu sitio.
    • Si estás en la Vista de Malla, da clic en el botón Administrar en la parte inferior de la caja del sitio.
    • Si estás en la Vista de Lista, da clic en el botón Administrar a la derecha de tu dominio.
  3. Desplázate hasta la sección Configuraciones Adicionales, y da clic en el botón Modificar a la derecha de la subsección Rutas.
    Aparece el directorio web de tu sitio.

Recuerda que tu cliente FTP debe estar configurado para mostrar los archivos escondidos. Si no, no verás el archivo .htaccess. Mira el siguiente artículo para saber cómo ver los archivos escondidos:

¿Qué cambiar en los siguientes ejemplos?

Los siguientes ejemplos pueden ser ingresados en tu archivo .htaccess exactamente como se muestra.

Solo si el ejemplo contiene una URL en negrita, tu debes cambiarla por tu actual URL.
Por ejemplo, si tu ves el dominio example.com, cámbialo por el dominio de tu propiedad.

Forzar un dominio para servir de forma segura usando HTTPS (para cualquier sitio)

Lo que vas a ver a continuación, fuerza a cualquier requerimiento http a ser reescrito usando https. Por ejemplo, el siguiente código fuerza el requerimiento http://example.com a cargar https://example.com. Esto también fuerza a los recursos vinculados directamente (imágenes, css, etc.) a usar https:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

Si esto no te funciona, primero revisa las terminaciones de la línea. Copiar/pegar desde tu buscador web a un editor de texto puede no funcionar bien, entonces después de pegar dentro de tu editor de texto tu deberás eliminar cada salto de línea y agregarla de vuelta (salto de línea = tecla de retorno).

Forzar HTTPS con WordPress

Si tu archivo .htaccess ya contiene algunos códigos agregados por defecto, ingresa lo siguiente arriba o abajo de ese código. Nunca ingreses código dentro de las etiquetas de comentario que empiezan y terminan con:

# BEGIN WordPress
# END WordPress

Es posible para un visitante ingresar directamente a una URL HTTP en tu sitio WordPress, aún cuando el certificado SSL está activo. Para forzar cualquier requerimiento HTTP a redireccionar a HTTPS, tu puedes agregar código a tu archivo .htaccess de WordPress. Hay dos opciones de código abajo para que los uses. El primero deberá funcionar como se muestra, pero si no, intenta la opción dos en vez.

Opción #1

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

Ejemplo completo incluido el código por defecto de WordPress

Abajo es como se verá tu archivo de .htaccess con con el nuevo código HTTPS y el código de WordPress ya existente.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Option #2

En este ejemplo, asegúrate de cambiar example.com a tu dominio.

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

Ejemplo completo incluido el código por defecto de WordPress

Abajo es como se verá tu archivo de .htaccess con con el nuevo código HTTPS y el código de WordPress ya existente.

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Forzar HTTPS con DreamPress

No es posible usar un archivo .htaccess en DreamPress ya que utiliza Nginx, que en cambio fuerza automáticamente el uso de HTTPS en tu sitio DreamPress.

Solución de problemas

WordPress

Esto también puede ser un inconveniente con WordPress pues este requiere URLs en la base de datos para usar o no “www” para operar correctamente. Da clic en el siguiente artículo para ver más detalles.

Error de infinitas redirecciones

Da clic en el siguiente artículo si ves que tu sitio redirecciona en círculos después de hacer esos cambios.

Resolver advertencias de contenido mixto

Incluso cuando tu sitio está redirigiendo correctamente a la URL segura, es posible que el navegador siga emitiendo una advertencia que indica que algunos recursos, como los enlaces, apuntan a la versión no segura. Puedes agregar código adicional a tu archivo .htaccess para resolver esas advertencias. Mira el siguiente artículo para más detalles.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?