.htaccess - una - safari no puede abrir la pagina se han producido demasiados redireccionamientos
Https causa demasiados redireccionamientos en Safari (2)
Recientemente comencé a redirigir mi dominio a https
y recibo un error de "demasiados redireccionamientos" en Safari, especialmente en dispositivos móviles. Todo funciona bien en cualquier computadora y en cualquier otro navegador.
Así es como he hecho mis redireccionamientos.
para el dominio principal
RewriteCond %{HTTP_HOST} ^(www/.)?example/.com$ [NC]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www/. [NC]
RewriteRule ^ https://example/.com%{REQUEST_URI} [R=301,L,NE]
También deshabilité Cloudflare porque estaba causando problemas con mi SSL y solucioné algunos problemas con la propagación de DNS.
EDITAR:
Afecta a todos los navegadores de safari, excepto a las computadoras y eliminar el caché no resuelve el problema. Solo tengo un dominio, pero algunos subdominios.
Tengo otras directivas en .htaccess:
RewriteCond %{HTTP_HOST} ^example.com$ [OR]
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^folder//?(.*)$ "http/:////example/.com//all/-categories//folder//$1" [R=301,L]
EDITAR: SOLUCIONADO
El cambio de host resolvió este problema para mí.
RewriteRule ^folder//?(.*)$ "http/:////example/.com//all/-categories//folder//$1" [R=301,L]
Como está redireccionando todo a https
, también debería estar haciendo esto en la redirección anterior. De lo contrario, va a terminar con redirecciones adicionales (innecesarias). Entonces esto debe ser reescrito como:
RewriteRule ^folder/?(.*) https://example.com/all-categories/folder/$1 [R=301,L]
También he ordenado la expresión regular y la sustitución (¿parece algo que generaría cPanel?). No es necesario que todos los escapes de la barra invertida (y comillas dobles) en la sustitución RewriteRule
. Y el escape de barra invertida en el patrón RewriteRule
también es superfluo.
Sin embargo, dudo si esto solo es suficiente para satisfacer a Safari (móvil). (?)
Como está utilizando CloudFlare''s Flexible SSL; Es posible que el servidor web no pueda identificar correctamente cuándo la conexión debe realizarse a través de SSL y cuándo no.
Como tal, debe intentar instalar Mod_CloudFlare en su servidor web para resolverlo; si no puede hacerlo, puede configurar su variable de entorno SSL desde el encabezado X-Forwarded-Proto en su Apache .htaccess:
SetEnvIf X-Forwarded-Proto https HTTPS = en