Saya memiliki situs yang dapat diakses melalui http dan https. Saya melihat ulasan keamanan mengeluh yang base_url
tidak didefinisikan dalam settings.php
.
Namun ketika saya mendefinisikannya sebagai http://example.com
, dan flush semua cache, template saya di https tidak di-render.
Ketika saya mengomentari $base_url
baris dalam settings.php
semuanya kembali normal.
Bagaimana saya bisa menyelesaikan masalah ini?
Jawaban:
Anda mungkin perlu melakukan sesuatu seperti ini:
... sehingga Drupal tahu protokol mana yang digunakan tergantung pada bagaimana situs itu diakses.
sumber
Saya beruntung dengan:
Juga, untuk menjaga cookie sesi, saya biasanya menambahkan:
yang memungkinkan untuk mode campuran.
sumber
url('path', array('absolute'=>TRUE));
diterjemahkan sebagai//mysite.com/path
. Anda harus menggunakan pendekatan @ colan daripada yang ini.Ini berfungsi baik untuk saya dengan beberapa domain pada pemasangan Drupal yang sama melalui CloudFlare:
Seperti ini juga berfungsi baik dengan CloudFlare SSL fleksibel. Saya dapat mengakses situs dengan dan tanpa SSL.
(Sepertinya Anda tidak memerlukan modul Cloudflare tetapi tidak ada salahnya untuk mengaktifkannya.)
sumber
Sayangnya masalah dengan pengaturan protokol relatif terhadap URL yang diakses adalah bahwa situs hanya mereferensikan ketika membangun file yang di-cache dan karenanya membuat semua referensi ke file dan sumber daya berdasarkan protokol apa yang digunakan saat membangun kembali cache situs.
Jadi, jika Anda membuat ulang cache dari https, maka semua tautan adalah https. Jika Anda membangun kembali situs dari http, maka semua tautan adalah http.
Membangun kembali dari https berfungsi dengan baik, tetapi browser mungkin masih memblokir konten yang aman dan mungkin mengharuskan pengguna untuk secara manual mengizinkan konten yang diblokir.
sumber