¿Cuál es la mejor manera de forzar HTTPS y WWW pero permitir localhost?

¿Cuál es la mejor manera de forzar HTTPS y WWW pero permitir localhost?

HTACCESS fuerza HTTPS y WWW pero permite localhost

Es importante forzar HTTPS y WWW por varias razones: ganarse la confianza de sus visitantes mostrando que la conexión es segura y, si está utilizando un subdominio como www, manteniendo la coherencia con sus visitantes y sus informes, en su web barata hosting por ejemplo.

Fácilmente puede complicarse en los motores de informes como Google Search Console tener diferentes vistas para el mismo sitio y páginas. Uno con conexión HTTPS segura, uno sin y uno de cada uno con el subdominio web www y otro sin él, e incluso se convierten en una pesadilla que lo lleva a tener que configurar un filtro de subdominio de Google Analytics para obtener informes consistentes.

En realidad, hay algunas maneras fáciles de garantizar que todos los visitantes sean redirigidos a la versión segura de HTACCESS force HTTPS del sitio y el subdominio web, sin afectar las visitas, y también se puede utilizar para redirigir el sitio web a otro sitio web con este simple y simple método elegante

Y, además de eso, y para completarlo, para asegurarse de que se pueda acceder al subdominio localhost sin el subdominio web o la redirección a HTTPS, y que las páginas que terminan con barra oblicua se redirigirán a la página normal, para evitar doble recuento de las mismas páginas en los informes.

Vamos a deshacernos de todas estas páginas duplicadas, que hacen que al final sea difícil acordar correctamente los análisis:

  • http://mywebsite.com/page

  • http://mywebsite.com/page/

  • https://mywebsite.com/page

  • https://mywebsite.com/page/

  • http://www.mywebsite.com/page

  • http://www.mywebsite.com/page/

  • https://www.mywebsite.com/page

  • https://www.mywebsite.com/page/

  • Todo esto se realizará mediante la actualización del archivo .htaccess, que es un archivo oculto utilizado en los servidores Apache, generalmente almacenado en la carpeta raíz del sitio web.

Redireccionar la página que termina con una barra inclinada

Para eliminar la barra diagonal final de la URL que termina con una de ellas y hacer que las solicitudes se redirijan a la página estándar sin la barra diagonal, simplemente haga coincidir las URL que comienzan y terminan con una barra diagonal, asegúrese de que no se solicite un directorio y redirija a todo el URI de solicitud sin la barra diagonal final.

Además, redirija la página a la URL web segura que debería ser correcta: esto resolverá directamente todos sus problemas potenciales, incluida la barra diagonal, la solicitud no segura o el subdominio no web.

También necesitamos un código adicional para asegurarnos de que cualquier solicitud a un directorio finalice con una barra oblicua, ya que las URL normales de los directorios del sitio web terminarán con una de ellas.

# Remove trailing slash from non-filepath urls
RewriteCond %{REQUEST_URI} /(.+)/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ https://www.mywebsite.com/%1 [R=301,L]
# Include trailing slash on directory
RewriteCond %{REQUEST_URI} !(.+)/$
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ https://www.mywebsite.com/$1/ [R=301,L]

HTACCESS forzar HTTPS y forzar WWW htaccess

Ahora que se ha resuelto el problema de la barra diagonal final, centrémonos en el HTTPS faltante o en el subdominio web faltante que puede suceder, con una redirección htaccess http a https con fuerza www.

La forma más fácil y elegante de hacer que suceda es identificarlos a ambos exactamente en la misma condición de acceso.

Esto se hace fácilmente combinando las URL que no comienzan con el subdominio web, o cualquier solicitud que no incluya el HTTPS, y redirigiendo la URL correcta de nuestro sitio web, que incluye tanto la conexión segura como el subdominio web www.

# HTACCESS force HTTPS and force WWW htaccess 
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Forzar HTTPS y WWW pero permitir localhost

Ahora, todo esto es bueno, pero lo que sucede cuando realmente intentamos llegar a nuestro sitio web en modo de desarrollo en el servidor local XAMPP, pero todas nuestras solicitudes a http: // localhost ahora se redirigen a https://www.mysite.com - nuestra versión de producción?

Bueno, la solución es reutilizar el código anterior que aplica la versión HTTPS y WWW de la solicitud de URL, pero comience excluyendo de las solicitudes de verificación que están dirigidas a localhost o a nuestra dirección IP local, que es 127.0.0.1.

¡Y eso es todo, ahora tenemos un hermoso código que resolverá todos nuestros problemas!

# HTACCESS force HTTPS and force WWW htaccess 
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Redirigir HTTP a HTTPS htaccess, forzar WWW y eliminar la barra diagonal final

Todo el código siguiente se puede usar en el archivo HTACCESS para lograr todo lo siguiente:

Redirigir HTTP a HTTPS en htacces,

Forzar WWW en htaccess,

Elimine la barra diagonal final en la URL.

Por supuesto, no olvide cambiar la URL del sitio web por la que le corresponda.

Incluso se puede usar para redirigir el sitio web a otro sitio web simplemente cambiando las URL de destino a su otro mejor sitio web de alojamiento web barato:

#--------------------------------------------------
# Force WWW htaccess : /
#--------------------------------------------------
#### Force HTTPS://WWW and remove trailing / from files ####
## Turn on rewrite engine
RewriteEngine on

# Remove trailing slash from non-filepath urls
RewriteCond %{REQUEST_URI} /(.+)/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ https://www.mywebsite.com/%1 [R=301,L]

# Include trailing slash on directory
RewriteCond %{REQUEST_URI} !(.+)/$
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ https://www.mywebsite.com/$1/ [R=301,L]

# HTACCESS force HTTPS and force WWW htaccess
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Artículos similares

Comentarios (0)

Deja un comentario

Find the perfect Freelance Services for your business from fiverr.com!
Find the perfect Freelance Services for your business from fiverr.com!