Artikel ini menjelaskan penyebab pesan kesalahan berikut dan cara memperbaiki masalahnya:
The provided host name is not valid for this server.
Saat Anda bekerja dengan Drupal 8, Anda mungkin mendapatkan pesan kesalahan ini saat menelusuri halaman mana pun dan melihat halaman putih polos.
Peringatan: Sebelum Anda menggunakan petunjuk pemecahan masalah ini, pastikan bahwa Anda memahami lingkungan Anda karena langkah pemecahan masalah ini mungkin tidak cocok untuk semua pengaturan atau konfigurasi. Selain itu, kami menyarankan Anda untuk membuat cadangan sebelum membuat perubahan apa pun pada sistem Anda sehingga Anda memiliki kemampuan untuk mengembalikan perubahan jika diperlukan.
Sumber kesalahan
Pesan kesalahan ini berasal dari fitur yang ditambahkan ke Drupal untuk melindungi dari serangan header host HTTP. Catatan perubahan yang dihasilkan untuk tambalan menjelaskan fitur tersebut.
Sayangnya, ada kemungkinan untuk memalsukan header host HTTP untuk tujuan jahat dan mengelabui Drupal agar menggunakan nama domain yang berbeda di beberapa subsistem (terutama pembuatan tautan). Jadi, Anda harus mempertimbangkan header host HTTP sebagai input pengguna yang tidak dipercaya.
Perbaiki kesalahan ini
Untuk mengatasi masalah ini, Drupal menambahkan pengaturan berikut untuk mengonfigurasi daftar nama host tepercaya tempat situs dapat dijalankan.
$settings['trusted_host_patterns']
Setelannya adalah larik pola ekspresi reguler, tanpa pembatas, yang mewakili nama host yang ingin Anda izinkan untuk dijalankan.
Misalnya, jika Anda menjalankan situs dari satu hostname www.example.com
, maka Anda harus menambahkan ini ke pengaturan Anda (biasanya ditemukan di ./sites/default/settings.php
):
$settings['trusted_host_patterns'] = array( '^www\.example\.com$', );
Catatan :^, \., dan $ adalah sintaks Perl Compatible Regular Expressions (PCRE) dan berarti Anda ingin mencocokkanwww.example.com
tepatnya, tanpa tambahan apa pun di awal atau akhir, dan titik tersebut harus diperlakukan sebagai titik dan bukan karakter wildcard.
Jika Anda menjalankan dari “example.com”, gunakan yang berikut ini:
$settings['trusted_host_patterns'] = array( '^example\.com$', );
Jika Anda perlu menjalankan situs dengan beberapa domain atau subdomain dan tidak melakukan pengalihan URL kanonik, setelan Anda harus serupa dengan contoh berikut:
$settings['trusted_host_patterns'] = array( '^example\.com$', '^.+\.example\.com$', '^example\.org', '^.+\.example\.org', );
Ini memungkinkan situs berjalan dari semua varian example.com dan example.org dengan semua subdomain disertakan.
Jika Anda telah mengkonfigurasi pengaturan ini dan masih melihat pesan kesalahan, Anda mungkin tidak menggunakan sintaks ekspresi reguler yang benar. Dalam hal ini, ambil contoh pertama dalam artikel ini, salin dan tempel ke setelan Anda, lalu edit untuk mencerminkan nama host tempat situs Anda dijalankan.
Setelah Anda menyesuaikan $settings['trusted_host_patterns']
ke nilai yang tepat, Anda seharusnya dapat menjelajahi situs Anda lagi.
Menghapus setelan
Jika Anda menghapus pengaturan sama sekali, mekanisme host tepercaya tidak digunakan, dan Anda melihat kesalahan pada halaman laporan status. Selain itu, situs Anda mungkin rentan terhadap serangan header host HTTP.
Periksa status
Anda dapat memeriksa status pengaturan host tepercaya Anda dari halaman laporan status, yaitu di admin/reports/status
.