Tengo los siguientes dominios:
http://example.net -> https://www.example.com/ http://example.org -> https://www.example.com/ http://example.com -> https://www.example.com/ http://theexample.com -> https://www.example.com/Estoy perdido buscando una manera de forzar la redirección de todos estos dominios a un solo dominio que use www y https , incluidos todos los subdirectorios. El dominio principal es ejemplo.com y necesito redirigirlo incluyendo subdirectorios como:
http://example.net/blog -> https://www.example.com/blog http://www.example.org/blog -> https://www.example.com/blog https://example.com/blog -> https://www.example.com/blog http://theexample.com/blog -> https://www.example.com/bloghttps://www y el dominio ejemplo.com es obligatorio en todos los subdirectorios.
Gracias de antemano por su ayuda
En lugar de verificar los nombres de host para redirigir, puede simplemente verificar que el esquema + nombre de host no sea el canónico y luego redirigirlo. Por lo tanto, si la solicitud no es para https://www.example.com/... entonces redirija (copiando la ruta URL).
Por ejemplo:
RewriteEngine On RewriteCond %{HTTPS} =off [OR] RewriteCond %{HTTP_HOST} !=www.example.com RewriteRule (.*) https://www.example.com/$1 [R=302,L] Lo anterior indica... para todas las solicitudes en las que HTTPS esté off o no, www.example.com luego redirige a https://www.example.com/<URL-path> . $1 es una referencia inversa al subgrupo de captura en el patrón RewriteRule (es decir, la ruta URL). Cualquier cadena de consulta también se copia de forma predeterminada.
El prefijo = en CondPattern hace que esta sea una coincidencia de cadena exacta, no una expresión regular. Y el ! prefijo niega la expresión regular (es decir, no coincide).