Vấn đề subdomain được nhiều bạn quan tâm, nên lần này mình xin post hướng dẫn tạo subdomain theo user (của bạn dangkhoi.info) như kiểu các dịch vụ blog hay làm : duynhan.nhanweb.com chẳng hạn :)
Giải pháp trình bày dưới đây là tạo các domain ảo bằng wildcard DNS. Bài sử dụng DirectAdmin làm demo.
Tạo wildcard DNS
Để làm được việc này bạn cần có tài khoản Admin, hoặc bạn có thể nhờ bên cung cấp host lo cho vụ này (chẳng biết họ có chịu giúp không nữa :D )
Bạn chọn domain cần tại wildcard DNS sau đó tạo 1 record có type A và name * , value là dải IP của máy chủ để khi tạo, các subdomain sẽ cùng trỏ về đây.
Tiếp tục vào Custom HTTPD Configurations như hình dưới đây:
Chọn domain cần tạo wildcard DNS, rồi gõ vào câu này và dòng trên cùng của text area
ServerAlias *.|DOMAIN| |
Gõ đúng y vậy, không phải thay |DOMAIN| bằng domain của mình, vì tự dộng Direct Admin thay.
Vậy là xong phần tạo WildCard DNS. Bạn cần reboot lại server, apache lại để những gì bạn vừa cấu hình hoạt động. Khi nào bạn gõ subdomain nó tự redirect về trang chính là được (ví dụ bạn gõ abc.nhanweb.com sẽ chuyển về nhanweb.com).
Rewrite wildcard DNS subdomain
Nhiệm vụ của bước này là khi chúng ta gõ subdomain thì chuyển về một dạng khác để xử lý trên trang chính (ví dụ babyinternet.nhanweb.com ==> nhanweb.com?username=babyinternet chẳng hạn). Việc này chúng ta có thể nhờ Apache xử lý như sau:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / #www is not a user subdomain RewriteCond %{HTTP_HOST} ^www.nhanweb.com[NC,OR] RewriteCond %{HTTP_HOST} ^nhanweb.com[NC] RewriteRule ^(.*) $1 [L] #redirect wildcard subdomains RewriteCond %{HTTP_HOST} ([^.]+)\.nhanweb.com [NC] RewriteRule ^$ /program.php?user=%1 [L] </IfModule> <IfModule !mod_rewrite.c> ErrorDocument 404 /index.php </IfModule> |