Tengo un sitio al que se puede acceder a través de http y https. Veo que la revisión de seguridad se queja de que base_url
no está definida en settings.php
.
Sin embargo, cuando lo defino como http://example.com
y vacío todos los cachés, mi plantilla en https no se representa.
Cuando comento la $base_url
línea, settings.php
todo vuelve a la normalidad.
¿Como puedo resolver este problema?
Respuestas:
Probablemente necesites hacer algo como esto:
... para que Drupal sepa qué protocolo usar dependiendo de cómo se accedió al sitio.
fuente
He tenido suerte con:
Además, para mantener la cookie de sesión, generalmente agrego:
que permite el modo mixto.
fuente
url('path', array('absolute'=>TRUE));
se represente como//mysite.com/path
. Debería usar el enfoque de @ colan en lugar de este.Esto funciona bien para mí con varios dominios en la misma instalación de Drupal sobre CloudFlare:
De esta manera, también funciona bien con SSL flexible de CloudFlare. Puedo acceder al sitio con y sin SSL.
(Parece que no necesita el módulo Cloudflare, pero tampoco estaría de más habilitarlo).
fuente
Desafortunadamente, el problema con la configuración del protocolo en relación con la URL a la que se accede es que el sitio solo hace referencia a eso al construir los archivos en caché y, por lo tanto, crea todas las referencias a archivos y recursos según el protocolo que se utiliza al reconstruir la caché del sitio.
Entonces, si reconstruye el caché desde https, entonces todos los enlaces son https. Si reconstruye el sitio desde http, todos los enlaces son http.
La reconstrucción a partir de https funciona mejor, pero los navegadores aún pueden bloquear el contenido seguro y pueden requerir que los usuarios permitan manualmente el contenido bloqueado.
fuente