www redireccionar redireccionamiento redirecciona quitar pagina otra htaccess enmascarar dominio apache .htaccess mod-rewrite https

apache - redireccionar - htaccess fuerza https y redirige www a no-www, pero no a otros subdominios



redireccionar url (5)

Sé que hay muchos hilos similares, pero ninguno de ellos parece coincidir con mi problema exacto. Esto es lo que trato de hacer:

(1) http://www.mydomain.com/ -> https://mydomain.com/ (2) http://mydomain.com/ -> https://mydomain.com/ (3) https://www.mydomain.com -> https://mydomain.com/

Idealmente, también me gustaría cubrir la situación si alguna vez agrego más subdominios, para comportarme automáticamente como el siguiente (preferiblemente de una manera genérica que funcionará para cualquier subdominio que agregue).

(4) http://sub.mydomain.com/ -> https://sub.mydomain.com/

En este momento me pregunto si es posible crear un solo archivo .htaccess que haga todo lo que necesito, aunque tengo que admitir que entiendo los regexes, pero no soy exactamente un uberpro mod_rewrite.

Aquí están las soluciones que ya probé:

Mi certificado SSL cubre el www-subdominio, por lo que no estoy buscando una solución de error de ''conexión no confiable'', soy consciente de que no es posible.


Coloque este código en su archivo DOCUMENT_ROOT/.htaccess :

RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{ENV:HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] RewriteCond %{HTTP_HOST} ^www/.(.+)$ [NC] RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301,NE]


Forzar el uso de HTTPS

Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Forzar www a no www

Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.bewebdeveloper.com$ RewriteRule ^(.*) http://bewebdeveloper.com/$1 [QSA,L,R=301]


Descubrí que la mayoría de las sugerencias no se detectaban cuando tenía algo que era https://www.example.com y redireccionaba a https://example.com .

Lo siguiente funcionó para todas las permutaciones:

RewriteEngine On # match any URL with www and rewrite it to https without the www RewriteCond %{HTTP_HOST} ^(www/.)(.*) [NC] RewriteRule (.*) https://%2%{REQUEST_URI} [L,R=301] # match urls that are non https (without the www) RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} !^(www/.)(.*) [NC] RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

¡Espero que esto ayude a alguien!



Ninguno de los ejemplos funcionó para mí, parecían quedar atrapados en un bucle, sin embargo, los siguientes trabajos.

# match any URL with www and rewrite it to https without the www RewriteCond %{HTTP_HOST} ^(www/.)(.*) [NC] RewriteRule (.*) https://%2%{REQUEST_URI} [R=301,L] # match non https and redirect to https RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

El orden importa, evitará una tercera redirección en algunos casos.

Si desea utilizar un subdominio (distinto de www.) Simplemente elimine el primer conjunto de reglas.

Entonces, para los subdominios todo lo que necesitas es

# match non https and redirect to https RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Uso los servicios de Cloudways y he encontrado que esto es lo único que funciona