www via non inmotionhosting htaccess forzar force .htaccess mod-rewrite https no-www

.htaccess - via - Forzar non-www y https a través de htaccess



html force https (3)

Estoy tratando de forzar a un usuario a ser redirigido al sitio web que no es www, y, forzar https

Tengo este tipo de trabajo, pero no fuerza https, cuando se ingresa http.

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://site.com/.net/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www/. RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

¿Alguna idea sobre lo que estoy haciendo mal?


Basado en el comentario de Gumbo: "la conexión TLS / SSL se estableció y el certificado se validó antes de que se transfiera a HTTP y se realice la redirección de HTTP". Probé esto (que parece funcionar):

RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.blahblah.com/$1 [R,L] RewriteCond %{HTTP_HOST} ^www/.blahblah/.com [NC] RewriteRule ^(.*)$ https://blahblah.com/$1 [L,R=301]

por favor dígame si hay algo malo con este enfoque.


El único conjunto de reglas que me funciona es el siguiente

# 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, previene una tercera redirección en algunos casos.


Prueba esta regla:

RewriteCond %{HTTP_HOST} ^(www/.)(.+) [OR] RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^(www/.)?(.+) RewriteRule ^ https://%2%{REQUEST_URI} [R=301,L]