Forzar HTTP a HTTPS en WordPress (servidor Apache)

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 es ahora un requisito para muchas API de navegador nuevas, como la API de geolocalización .

HTTPS también tiene algo de 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 está todo 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.comy desea dirigir a todos los visitantes de HTTP a HTTPS, pruebe cualquiera de los siguientes códigos .htaccess.

Opción 1:
1
2
3
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Opcion 2:
1
2
3
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án a cualquiera que acceda http://www.domain.comahttps://www.domain.com

Los códigos de la opción 1 comprobarán si la conexión es TLS / SSL, mientras que los códigos de la opción 2 comprobarán si el sitio se ejecuta en el puerto 80que, de forma predeterminada, es el número de puerto HTTP.

“sin www”> “www” y HTTP> HTTPS

Si desea forzar “non-www” a “www”, y HTTP a HTTPS, 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:

  • https://www.domain.com

Luego, deberá usar los códigos .htaccess a continuación.

1
2
3
4
5
6
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 HTTPS, asegurándose de que el resultado final sea: www + HTTPS.

“non-www”> “www” y HTTP> HTTPS (en subcarpeta)

Ahora, si, como nosotros, está 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 ” desde ” y redirigir ” a “.

Condición 1

Necesitamos redirigir todas las siguientes URL desde:

  • http://domain.com

  • http://www.domain.com

  • http://domain.com/blog/

  • http://www.domain.com/blog/

a una URL unificada de:

  • https://www.domain.com/blog/

Condición 2

y publicar URL de:

  • http://domain.com/blog/example-page/

  • http://www.domain.com/blog/example-page/

a:

  • https://www.domain.com/blog/example-page/

Cuando su WordPress está alojado en una subcarpeta (por ejemplo /blog/), es probable 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 modificarlos a ambos.

.htaccess
Blog/
blog / .htaccess
.htaccess fuera de la subcarpeta

Inserte los siguientes códigos en .htaccess fuera de la subcarpeta.

1
2
3
4
5
6
7
8
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 redirija 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 todavía no.

.htaccess dentro de la subcarpeta

A continuación, necesitaremos modificar el código .htaccess dentro de la subcarpeta.

Por defecto, debería verse así:

1
2
3
4
5
6
7
8
9
10
# 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”

1
2
3
4
5
6
<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 prueba / ensayo, asegurándose de obtener los resultados que desea antes de implementarlo en vivo.

Una cosa más, para asegurarse de que su redirección sea precisa, asegúrese de borrar las cookies y el caché del navegador antes de comenzar cada prueba.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *