redireccionar - Apache redirecciona http a https y www a no www
redireccionar http a https htaccess (6)
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]
básicamente lo que quiero es redirigir la solicitud al uso de HTTPS en lugar de http
Tengo esto en mi htaccess hasta ahora y funcionó muy bien: Código:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</ifModule>
hoy alguien notó que al ir a: http://www.example.com , redirige y muestra una conexión no segura.
Mi ssl está configurado para un dominio no www: mydomain.com
Así que necesito asegurarme de que todas las solicitudes del sitio se envíen a no www y https: funciona bien si pongo example.com redirige 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 non 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 manera obtendrá el host siempre sin el subdominio.
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, simplemente vaya a la configuración de DNS en CloudFlare y saque la nube naranja de su dominio y de la WWW cname. Eso solucionará su problema y hará que tanto www como non-www sean redirigidos 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!
Tendrá que 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]
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www/.)?(.*)$ [NC]
RewriteRule (.*) https://www.%1%{REQUEST_URI} [L,R=301]