Saya menjalankan situs web Drupal 8, dan ketika saya menjelajah ke halaman mana pun, saya mendapatkan halaman putih polos hanya dengan pesan kesalahan berikut di atasnya.
Nama host yang disediakan tidak valid untuk server ini.
Apa artinya ini? Bagaimana cara saya memperbaikinya?
Jawaban:
Pesan kesalahan ini berasal dari fitur yang ditambahkan ke Drupal 8 untuk melindungi terhadap serangan header HTTP Host . Fitur ini juga dijelaskan dalam catatan perubahan yang dibuat untuk tambalan.
Pada dasarnya, itu mungkin untuk menipu header HTTP Host untuk tujuan jahat, dan menipu Drupal agar menggunakan nama domain yang berbeda di beberapa subsistem (terutama pembuatan tautan). Dengan kata lain, tajuk Host HTTP harus dianggap sebagai input pengguna, dan tidak dapat dipercaya.
Untuk mengatasi hal ini, pengaturan baru,,
$settings['trusted_host_patterns']
ditambahkan ke Drupal 8 untuk mengonfigurasi daftar nama host "tepercaya" tempat situs itu dapat dijalankan. Pengaturan perlu berupa array pola ekspresi reguler, tanpa pembatas, yang mewakili nama host yang ingin Anda jalankan.Misalnya, jika Anda menjalankan situs Anda dari satu hostname "www.example.com", maka Anda harus menambahkan ini ke pengaturan Anda (biasanya ditemukan di
./sites/default/settings.php
):Perhatikan
^
,\.
, dan$
. Ini adalah Sintaks PCRE . Ini hanya berarti bahwa Anda ingin mencocokkan "www.example.com" dengan tepat, tanpa tambahan di awal dan akhir, dan bahwa titik-titik tersebut harus diperlakukan sebagai titik dan bukan karakter wildcard.Jika Anda menjalankan dari "example.com", gunakan saja:
Jika Anda perlu menjalankan situs beberapa domain dan / atau subdomain, dan tidak melakukan pengalihan URL kanonik, maka pengaturan Anda akan terlihat seperti ini:
Ini memungkinkan situs untuk menjalankan semua varian dari example.com dan example.org, dengan semua subdomain disertakan.
Setelah Anda menyesuaikan
$settings['trusted_host_patterns']
dengan nilai yang tepat, Anda harus dapat menjelajah ke situs Anda lagi.Anda juga dapat memeriksa status pengaturan host tepercaya Anda dari halaman laporan status, yaitu di admin / laporan / status
Jika Anda menghapus pengaturan sama sekali, mekanisme host tepercaya tidak akan digunakan, dan Anda akan melihat kesalahan pada halaman laporan status. Selain itu, situs Anda mungkin juga rentan terhadap serangan header HTTP Host.
Jika Anda telah mengonfigurasi pengaturan ini dan melihat pesan ini, mungkin itu berarti Anda telah mengacaukan sintaks ekspresi reguler. Dalam hal ini, ambil contoh pertama, dan salin / tempel ke pengaturan Anda, lalu edit untuk mencerminkan nama host tempat situs Anda berasal.
sumber
untuk instalasi localhost Anda dapat menggunakan kode berikut dalam file settings.php Anda
sumber
Ini terjadi karena
trusted_host_patterns
variabel dalam file pengaturan Anda. Jika Anda bekerja di lingkungan lokal dan Anda ingin menimpanya, tentukan bagian berikut disettings.local.php
file Anda :Atau lebih banyak pola umum :
Atau lebih spesifik untuk lingkungan lokal :
Ini solusi paling sederhana, tetapi tidak disarankan karena Anda harus menetapkan nilai yang tepat untuk menghindari spoofing header HTTP Host untuk tujuan jahat. Jika situs web Anda hanya berjalan di lokal Anda, maka Anda akan baik-baik saja
Lihat: Pengaturan baru untuk konfigurasi nama host tepercaya .
sumber
Masalah ini juga akan terjadi jika Anda memilikinya
padahal seharusnya
mengatur dalam pengaturan non-ssl (seperti untuk lingkungan dev / pengujian) dan mencoba mengakses situs pada port 80
sumber
Ini karena konfigurasi host tepercaya dari serveur. Itu dapat menghasilkan ketika Anda mengubah nama domain atau
'trusted_host_patterns'
. Untuk mengatasi probleme, tambahkan domain baru Anda keDRUPAL_ROOT/sites/SITE_FOLDER/settings.php
(Ex:sites/defaults/settings.php
)Contoh: Nama domain = newdomain.com
sumber