Forzar HTTPS: redirigir HTTP a HTTPS
Envíe a cada visitante a la versión segura https:// de su sitio con una regla corta en .htaccess, después de que el dominio tenga certificado SSL.
Cuando su dominio ya tenga certificado SSL, envíe automáticamente a https:// a quienes escriban http://. Los navegadores dejan de mostrar "No seguro" y los buscadores indexan una sola versión de cada página.
Antes de empezar
El dominio debe tener un certificado que funcione. Abra https://sudominio.com en su navegador. Si ve una advertencia de certificado, un error 403 u otro sitio, primero arregle el SSL. Redirigir a HTTPS sin certificado deja el sitio fuera de línea para los visitantes.
Si usa WordPress, revise Ajustes → Generales en WordPress: ambas direcciones deben empezar con https://. Muchos plugins de SSL también hacen esta redirección; use un solo método, no los dos.
Agregar la redirección
- Abra el administrador de archivos desde el panel de control de hospedaje.
- Vaya a la carpeta
htmldel sitio (sudominio.com/html). - Abra
.htaccess, o créelo si no existe (nuevo elemento → archivo llamado.htaccess). Si ya existe, descargue una copia primero. - Agregue estas líneas al inicio del archivo, antes de cualquier bloque
# BEGIN WordPress:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- Guarde.
Esto conserva la ruta y los parámetros (http://sudominio.com/contacto?x=1 va a https://sudominio.com/contacto?x=1) y funciona para todos los dominios que usan esa carpeta. 301 les indica a los buscadores que el cambio es permanente.
Comprobar
- Abra una ventana privada del navegador.
- Vaya a
http://sudominio.com/alguna-pagina. - La barra de direcciones debe cambiar a
https://sudominio.com/alguna-paginay mostrar el candado.
También puede ejecutar curl -I http://sudominio.com y buscar 301 y una línea Location: https://….
Enviar también www a una sola versión (opcional)
Para usar siempre https://sudominio.com sin www, use esto en lugar del bloque anterior (cambie sudominio\.com):
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.sudominio\.com$ [NC]
RewriteRule ^ https://sudominio.com%{REQUEST_URI} [L,R=301]
Verifique que el certificado cubra tanto sudominio.com como www.sudominio.com.
Si algo sale mal
- "Demasiadas redirecciones": hay dos redirecciones en conflicto (un plugin y
.htaccess, o la dirección de WordPress sigue enhttp://). Quite una. - Error 500 después de guardar: un error de escritura en
.htaccess. Restaure su copia y vuelva a pegar las líneas. - Otro sitio o un 403 por HTTPS: el dominio no tiene certificado. Quite la redirección y vea Solucionar errores del sitio web.
Más sobre el archivo: Editar el archivo .htaccess.
En esta página