Tóm tắt nhanh chóng
- Bạn cần tạo miền ký tự đại diện trên máy chủ DNS của mình * .website.com
- Sau đó, trong vùng chứa vhost của bạn, bạn cũng sẽ cần chỉ định ký tự đại diện * .website.com - Điều này được thực hiện trong
ServerAlias
DOC
- Sau đó giải nén và xác minh tên miền phụ trong PHP và hiển thị dữ liệu thích hợp
Phiên bản dài
1. Tạo mục nhập DNS ký tự đại diện
Trong cài đặt DNS của mình, bạn cần tạo mục nhập miền ký tự đại diện chẳng hạn như *.example.org
. Một mục nhập ký tự đại diện trông giống như sau:
*.example.org. 3600 A 127.0.0.1
2. Bao gồm ký tự đại diện trong vhost
Tiếp theo trong cấu hình Apache, bạn cần thiết lập vùng chứa vhost chỉ định ký tự đại diện trong chỉ thị ServerAlias
DOCs . Một vùng chứa vhost ví dụ:
<VirtualHost *:80>
ServerName server.example.org
ServerAlias *.example.org
UseCanonicalName Off
</VirtualHost>
3. Tìm ra miền phụ bạn đang sử dụng trong PHP
Sau đó, trong các tập lệnh PHP của bạn, bạn có thể tìm ra miền bằng cách tìm kiếm $_SERVER
biến siêu toàn cục. Đây là một ví dụ về việc lấy tên miền phụ trong PHP:
preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}
Tôi đã sử dụng regex ở đây để cho phép mọi người truy cập trang web của bạn qua www.subdomain.example.org hoặc subdomain.example.org.
Nếu bạn không bao giờ lường trước phải đối phó với www. (hoặc các miền phụ khác) thì bạn chỉ cần sử dụng một chuỗi con như sau:
$subdomain = substr(
$_SERVER['SERVER_NAME'], 0,
strpos($_SERVER['SERVER_NAME'], '.')
);
Lưu trữ ảo hàng loạt
Lưu trữ ảo hàng loạt là một kế hoạch hơi khác so với ở trên ở chỗ bạn thường sử dụng nó để lưu trữ nhiều trang web riêng biệt thay vì cố gắng sử dụng nó để cung cấp năng lượng cho một ứng dụng như câu hỏi đề xuất.
Tôi đã ghi lại môi trường lưu trữ ảo hàng loạt dựa trên mod_rewrite của mình trước đây trong một bài đăng trên blog của mình , bạn có thể xem xét đó có phải là lộ trình bạn muốn đi hay không. Tất nhiên, cũng có trang hướng dẫn Apache tương ứng .
Apache cũng có một cách xử lý nội bộ đối với lưu trữ ảo hàng loạt hơi kém linh hoạt hơn so với phương pháp mod_rewrite mà tôi đã sử dụng. Tất cả những điều này được mô tả trên trang hướng dẫn sử dụng Máy chủ ảo hàng loạt được cấu hình động Apache .
wildcard subdomains
, hãy xem giải pháp của tôi để làm điều này trong.htaccess
.