După cum s-a menționat într-un comentariu, aici sunt referințe pentru Apache, există mai multe moduri de a face acest lucru: Găzduire virtuală în masă configurată dinamic, Gazde virtuale de masă dinamice cu mod_rewrite.
Cea mai simplă soluție pe care am găsit-o după alte câteva teste este: una singură <VirtualHost>
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
DocumentRoot /www/example
<Directory />
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
cu acest wildcard ServerAlias.
Cu un .htaccess conținând
RewriteEngine activat
RewriteRule ^(.*)$ index.php [QSA,L]
apoi putem face toată rutarea pentru fiecare utilizator prin PHP:
<?php
$host = $_SERVER['HTTP_HOST'];
$sname = $_SERVER['SERVER_NAME'];
// parse the subdomain of $host or $sname and deliver
// the content accordingly (using the database)
?>
Beneficiu: funcționează și dacă utilizatorul final folosește propriul său domeniu personalizat cu o înregistrare CNAME DNS. Exemplu:
www.userabc.com CNAME userpage-userabc.example.com
Apoi, în PHP, $gazdă va arata aici www.userabc.com. Dacă aceste informații de domeniu personalizate se află undeva în baza de date, putem difuza conținutul în consecință, chiar dacă utilizatorul folosește un domeniu personalizat.
Notă: în cazul în care utilizatorii își folosesc domeniul personalizat cu CNAME, acest lucru este util pentru a determina care este VirtualHost implicit de utilizat atunci când o solicitare vine cu o gazdă care nu este listată în Numele serverului directive: VirtualHost implicit Apache.