Siempre debe cargar su sitio con HTTPS. Además de proteger la integridad de sus datos entre sus sitios web y los usuarios de su sitio, HTTPS ahora es un requisito para muchas nuevas API de navegador, como la API de geolocalización.
HTTPS también tiene cierto peso en la señal de clasificación SERP de Google. Por lo tanto, es crucial asegurarse de que su sitio siempre se cargue desde HTTPS. Le mostraremos cómo hacerlo con Apache en este tutorial.
Tenga en cuenta que antes de continuar con este paso, asegúrese de tener el certificado SSL instalado y cargado en el servidor. De lo contrario, consulte nuestro tutorial sobre la Guía para principiantes de certificados SSL de sitios web.
Si todo está listo, puede continuar con el siguiente paso.
HTTP a HTTPS
Si se puede acceder a su sitio web de WordPress directamente en http://www.domain.com
y desea dirigir a todos los visitantes de HTTP a HTTPS, luego pruebe cualquiera de los siguientes códigos .htaccess.
Opción 1:
RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Opcion 2:
RewriteEngine On RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Explicación
Tanto la opción 1 como la 2 redirigirá a cualquiera que acceda http://www.domain.com
a https://www.domain.com
Opción 1 los códigos comprobarán si la conexión es TLS/SSL, mientras que opcion 2 los códigos verificarán si el sitio se ejecuta en el puerto 80
que, por defecto, es el número de puerto de HTTP.
Nota: Usando Opción 1 los códigos generalmente son preferibles. La sintaxis es más expresiva y redirigirá a HTTPS independientemente del número de puerto porque técnicamente el sitio puede cargarse con HTTP fuera del puerto. 80
.
«no-www» > «www» y HTTP > HTTPS
Si desea forzar «no-www» a «www» y HTTP a HTTPS, entonces los códigos .htaccess anteriores no serán suficientes.
Para poner las cosas en perspectiva, si su objetivo es redirigir las siguientes URL:
-
http://www.domain.com
-
http://domain.com
a:
Luego, deberá usar los códigos .htaccess a continuación.
RewriteEngine On RewriteCond %{HTTP_HOST} ^domain.com$ [NC] RewriteRule (.*) http://www.domain.com/$1 [R=301,L] RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Explicación
Primero, redirige cualquier «no-www» a «www», luego verifica si hay HTTPS, asegurándose de que el resultado final sea: www + HTTPS.
«no-www» > «www» y HTTP > HTTPS (en subcarpeta)
Ahora, si está, como nosotros, alojando su sitio web de WordPress en una subcarpeta (es decir, www.domain.com/blog/
), entonces los códigos .htaccess mencionados anteriormente no funcionarán perfectamente.
El objetivo aquí es redirigir todas las URL (independientemente de si es la página de inicio o las páginas de publicación) a una URL www + HTTPS.
Echemos un vistazo a todas las posibilidades de URL que necesitaremos redirigir «de«, y redireccionar»a“.
Condición 1
Necesitamos redirigir todas las siguientes URL desde:
a una URL unificada de:
Condición 2
y publicar direcciones URL desde:
a:
Cuando su WordPress está alojado en una subcarpeta (Ej. /blog/
), lo más probable es que tenga dos archivos .htaccess, es decir, un archivo .htaccess fuera de la subcarpeta y otro dentro de la subcarpeta donde está instalado WordPress. Y tendremos que modificar ambos.
.htaccess blog/ blog/.htaccess
.htaccess fuera de la subcarpeta
Inserte los siguientes códigos en .htaccess fuera de la subcarpeta.
RewriteEngine On ### non-www to www, http to https RewriteCond %{HTTPS} !on RewriteCond %{HTTP_HOST} ^domain.com$ [OR] RewriteRule (.*) https://www.domain.com/$1 [R=301,L] ### subfolder RewriteRule ^$ /blog/ [R=301]
Esto es lo que hace esta parte del código. Primero, se asegura de que el dominio se redirige a www con HTTPS, luego se redirige a la subcarpeta. Esto satisfará la #condición 1 mencionada anteriormente, pero no funcionará para la condición #2, al menos no todavía.
.htaccess dentro de la subcarpeta
A continuación, necesitaremos modificar el código .htaccess dentro de la subcarpeta.
De forma predeterminada, debería verse algo como esto:
# BEGIN WordPress <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
Coloque el siguiente código .htaccess en la parte superior y antes de «# BEGIN WordPress»
<IfModule mod_rewrite.c> RewriteEngine On ## http to https RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
Con estos dos conjuntos de códigos en su lugar, se asegurará de que cualquier URL ingresada se incluya con www y HTTPS.
Le insto a que no implemente esto en su sitio en vivo. Pruébelo varias veces en un sitio de ensayo/prueba, asegurándose de obtener los resultados que desea antes de implementarlo en vivo.
Una cosa más, para asegurarse de que su redireccionamiento sea preciso, asegúrese de borrar las cookies y el caché del navegador antes de comenzar cada prueba.