Như đã đề cập trong một nhận xét, đây là tài liệu tham khảo cho Apache, có nhiều cách để thực hiện: Lưu trữ ảo hàng loạt được định cấu hình động, Máy chủ ảo hàng loạt động với mod_rewrite.
Giải pháp đơn giản nhất mà tôi đã tìm thấy sau một vài thử nghiệm nữa là: một <VirtualHost>
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
DocumentRoot /www/example
<Directory />
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
với ký tự đại diện này Bí danh máy chủ
.
Với một .htaccess
có chứa
RewriteEngine bật
RewriteRule ^(.*)$ index.php [QSA,L]
sau đó chúng tôi có thể thực hiện tất cả định tuyến cho từng người dùng thông qua 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)
?>
Lợi ích: nó cũng hoạt động nếu người dùng cuối cùng đang sử dụng miền tùy chỉnh của riêng mình với bản ghi CNAME DNS. Ví dụ:
www.userabc.com Trang người dùng CNAME-userabc.example.com
Sau đó, trong PHP, máy chủ $
sẽ ở đây hiển thị www.userabc.com
. Nếu thông tin miền tùy chỉnh này nằm ở đâu đó trong cơ sở dữ liệu, chúng tôi có thể cung cấp nội dung tương ứng, ngay cả khi người dùng đang sử dụng một tên miền tùy chọn.
Lưu ý: trong trường hợp người dùng sử dụng miền tùy chỉnh của họ với CNAME, điều này hữu ích để xác định Virtualhost mặc định sẽ sử dụng khi yêu cầu đi kèm với máy chủ lưu trữ không được liệt kê trong danh sách Tên máy chủ
chỉ thị: Máy chủ ảo mặc định của Apache.