Ikhtisar singkat
- Anda perlu membuat domain wildcard di server DNS * .website.com
- Kemudian dalam penampung vhost Anda, Anda perlu menentukan wildcard juga * .website.com - Ini dilakukan di
ServerAlias
DOC
- Kemudian ekstrak dan verifikasi subdomain di PHP dan tampilkan data yang sesuai
Versi panjang
1. Buat entri DNS karakter pengganti
Dalam pengaturan DNS Anda, Anda perlu membuat entri domain karakter pengganti seperti *.example.org
. Entri karakter pengganti terlihat seperti ini:
*.example.org. 3600 A 127.0.0.1
2. Sertakan wildcard di vhost
Selanjutnya dalam konfigurasi Apache Anda perlu menyiapkan penampung vhost yang menentukan wildcard di direktif ServerAlias
DOCs . Contoh wadah vhost:
<VirtualHost *:80>
ServerName server.example.org
ServerAlias *.example.org
UseCanonicalName Off
</VirtualHost>
3. Cari tahu subdomain Anda di PHP
Kemudian di skrip PHP Anda, Anda dapat mengetahui domain dengan melihat di $_SERVER
variabel super global. Berikut adalah contoh mengambil subdomain di PHP:
preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}
Saya telah menggunakan regex di sini untuk mengizinkan orang membuka situs Anda melalui www.subdomain.example.org atau subdomain.example.org.
Jika Anda tidak pernah mengantisipasi harus berurusan dengan www. (atau subdomain lain) maka Anda cukup menggunakan substring seperti ini:
$subdomain = substr(
$_SERVER['SERVER_NAME'], 0,
strpos($_SERVER['SERVER_NAME'], '.')
);
Hosting Virtual Massal
Hosting virtual massal adalah skema yang sedikit berbeda dengan yang di atas karena Anda biasanya menggunakannya untuk meng-host banyak situs web yang berbeda daripada mencoba menggunakannya untuk menjalankan aplikasi seperti yang diajukan pertanyaan.
Saya telah mendokumentasikan lingkungan hosting virtual massal berbasis mod_rewrite saya sebelumnya dalam sebuah posting di blog saya , yang dapat Anda lihat jika itu adalah rute yang ingin Anda ambil. Ada juga, tentu saja, halaman manual Apache .
Apache juga memiliki cara internal untuk menangani hosting virtual massal yang sedikit kurang fleksibel daripada metode mod_rewrite yang telah saya gunakan. Ini semua dijelaskan di halaman manual Apache Dynamically Configured Mass Virtual Hosting .
wildcard subdomains
, lihat solusi saya untuk melakukan ini di.htaccess
.