apache redirecciona http a https y www a no www

Básicamente, lo que quiero es redireccionar a la solicitud para usar HTTPS en lugar de http

Tengo esto en mi htaccess hasta ahora y funcionó muy bien: Código:

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

hoy alguien notó que cuando va a: http://www.example.com redirige y muestra una conexión insegura.

Mi ssl está configurado para el dominio no www: midominio.com

Así que necesito asegurarme de que todas las solicitudes de sitios se envíen a no www y https: funciona bien si puse example.com redirecciona a https://example.com

pero con www.example.com va a htts: //www.example.com y muestra el error

¿Qué necesito agregar a mi código para redirigir www a no www y luego a ssl?

Puede obtener lo que necesita de HTTP_HOST

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

De esta forma, obtendrá el host siempre sin el subdominio.

Deberá volver a emitir su certificado para www y sin www.

Si alguien se conecta a su sitio a través de un nombre de dominio que no está incluido en su nombre común, recibirá una advertencia.

El proceso de negociación SSL ocurre antes de cualquier respuesta del servidor (en su caso, una redirección), por lo que en todos los casos, sus visitantes recibirán una advertencia cuando usen un dominio que no está en su nombre común.

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

Si está utilizando la cuenta gratuita de CloudFlare, ese es el problema. La cuenta gratuita de CloudFlare NO admite certificados SSL. Para continuar usando la cuenta gratuita de CloudFlare con un certificado SSL solo vaya a la configuración de DNS en CloudFlare y elimine la nube naranja de su dominio y fuera de cname WWW. Eso solucionará su problema y hará que tanto www como no www se redirijan a https.

También asegúrese de agregar este código a su archivo .htaccess:

 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

Entonces, ¡todo debería funcionar!

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

Mira esto:

 RewriteEngine On RewriteCond %{HTTP_HOST}#%{HTTPS}s ^www\.([^#]+)#(?:off|on(s)) [NC] RewriteRule ^ http%2://%1%{REQUEST_URI} [R=301,L] RewriteCond %{HTTPS} !=on RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]