Saya memiliki konfigurasi Apache2 dengan beberapa VirtualHosts. DNS saya diset untuk menerima *.<domain>.<tld>
di banyak domain. Semuanya berfungsi dengan benar tetapi jika saya pergi ke something-random-here.example.com
saya tampaknya mendapatkan VirtualHost yang tidak valid dipilih (Saya menduga yang pertama atau terakhir ditemukan). Apakah ada cara untuk memberitahu Apache untuk menggunakan aturan tertentu jika tidak ada entri VirtualHost yang cocok dengan domain atau subdomain? Saya lebih suka mengembalikan 404.
12
ports.conf
. Itu tidak berfungsi karena saya mencoba mencocokkan *: 80 ketika saya menggunakan <ip>: 80 di virtualhosts saya. Sebaliknya saya harus membuat entri default terpisah untuk setiap IP dan berfungsi sekarang.Wildcard menyertakan file konfigurasi situs Anda:
Atur file conf situs Anda sehingga mereka dimuat dalam urutan yang diharapkan. Contoh...
01-httpd.conf
02-site1-httpd.conf
03-site2-httpd.conf
dll ...
Apache akan membaca ini secara berurutan. Kemudian buat satu yang akan selalu memuat terakhir untuk menangkap semua host virtual yang tak tertandingi dan mengembalikan 404 alih-alih memuat situs default.
99-catchall-httpd.conf
Pastikan untuk mengganti port dengan port apa pun yang didengarkan httpd Anda. Atau jika Anda mendengarkan httpd di antarmuka tertentu, Anda harus menambahkan catchall untuk setiap antarmuka, seperti:
Semoga ini membantu. Saya menggunakan metode ini untuk memuat situs dalam urutan yang saya tentukan dan mencegah host virtual yang tak tertandingi dari memuat situs yang tidak terduga secara tidak sengaja.
sumber
Seperti
Moritz Both
disebutkan, Apache2 akan menggunakan host virtual pertama yang ditemukannya jika tidak cocok dengan yang Anda minta.Ketika Anda pertama kali menginstal Apache2 ada conf situs web default yang dapat Anda gunakan sebagai templat, modifikasi atau hapus, dan saya selalu bertanya-tanya untuk apa sebenarnya 000-default.conf, karena mereka juga memiliki default.conf. Setelah membaca apa yang
Moritz Both
dikatakan, semuanya lebih masuk akal sekarang.Apa yang saya lakukan untuk server saya adalah menyalin konfigurasi untuk nama host default (situs web) ke file 000-default.conf dan
a2ensite 000-default
.Sekarang, setiap kali ada permintaan domain yang tak tertandingi ke situs web saya, itu melayani halaman 000-default, yang hanya merupakan salinan dari halaman default saya yang sebenarnya.
sumber
<VirtualHost *:443> ... Redirect / https://baseurl/ ... </VirtualHost>
tetapi url tetap sama. Saya telah melakukan hal yang sama untuk versi non ssl dan itu dialihkan dengan benar. Ada ide?