.htaccess redirecciona http a https

Tengo una url antigua ( www1.test.net ) y me gustaría redirigirla a https://www1.test.net
Implementé e instalé nuestro certificado SSL en mi sitio.
Este es mi viejo archivo .htaccess :

 RewriteEngine On RewriteRule !\.(js|gif|jpg|png|css|txt)$ public/index.php [L] RewriteCond %{REQUEST_URI} !^/public/ RewriteRule ^(.*)$ public/$1 [L] 

¿Cómo puedo configurar mi archivo .htaccess para que url auto redirija a https ?
¡Gracias!

Actualización 2016

Como esta respuesta recibe algo de atención, quiero indicarle una forma más recomendada de hacerlo usando Hosts Virtuales: Apache: Redirigir SSL

  ServerName mysite.example.com Redirect permanent / https://mysite.example.com/   ServerName mysite.example.com DocumentRoot /usr/local/apache2/htdocs SSLEngine On # etc...  

Respuesta anterior, algo raro, dado que su puerto ssl no está configurado en 80, esto funcionará:

 RewriteEngine on # force ssl RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

Tenga en cuenta que esta debería ser su primera regla de reescritura.

Editar: Este código hace lo siguiente. RewriteCond (ition) comprueba si el puerto de servidor de la solicitud es 80 (que es el puerto http predeterminado, si especificó otro puerto, tendría que ajustar la condición a él). Si es así, igualamos la url completa (.*) Y la redirigimos a una URL https. %{SERVER_NAME} puede ser reemplazado por una url específica, pero de esta manera no tiene que alterar el código para otros proyectos. %{REQUEST_URI} es la parte de la url después del TLD (dominio de nivel superior), por lo que se le redirigirá al lugar de donde proviene, pero como https.

Utilizo lo siguiente para redireccionar exitosamente todas las páginas de mi dominio de http a https:

 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Tenga en cuenta que esto se redireccionará usando el redireccionamiento 301 'permanently moved' , que ayudará a transferir sus clasificaciones de SEO.

Para redirigir usando el cambio 302 'temporarily moved' [R=302,L]

Esto es lo mejor para www y para https, usuarios proxy y no proxy.

 RewriteEngine On ### WWW & HTTPS # ensure www. RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # ensure https RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ### WWW & HTTPS 

Forzo el https con el siguiente código:

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

Buscando la mejor manera de redireccionar, he encontrado esto (viene de html5boilerplate):

 # ---------------------------------------------------------------------- # | HTTP Strict Transport Security (HSTS) | # ---------------------------------------------------------------------- # Force client-side SSL redirection. # # If a user types `example.com` in their browser, even if the server # redirects them to the secure version of the website, that still leaves # a window of opportunity (the initial HTTP connection) for an attacker # to downgrade or redirect the request. # # The following header ensures that browser will ONLY connect to your # server via HTTPS, regardless of what the users type in the browser's # address bar. # # (!) Remove the `includeSubDomains` optional directive if the website's # subdomains are not using HTTPS. # # http://www.html5rocks.com/en/tutorials/security/transport-layer-security/ # https://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-14#section-6.1 # http://blogs.msdn.com/b/ieinternals/archive/2014/08/18/hsts-strict-transport-security-attacks-mitigations-deployment-https.aspx Header set Strict-Transport-Security "max-age=16070400; includeSubDomains" 

¡Quizás ayude a alguien en 2017! 🙂

En los casos en que la conexión HTTPS / SSL finaliza en el equilibrador de carga y todo el tráfico se envía a instancias en el puerto 80, la siguiente regla funciona para redirigir el tráfico no seguro.

 RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Asegúrese de que el módulo mod_rewrite esté cargado.

También tuve un problema con la redirección. Intenté todo lo que se propuso en Stackoverflow. El único caso que encontré es el siguiente:

 RewriteEngine on RewriteBase / RewriteCond %{HTTP:SSL} !=1 [NC] RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 

Agregue este código al final de su archivo .htaccess

 RewriteEngine on RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Agregando lo siguiente a la parte superior del .htaccess

 RewriteEngine On RewriteCond %{ENV:HTTPS} !=on RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]