.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]