NHANWEB

Tạo subdomain bằng Apache – WildCard DNS

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 )

DNS Administrator

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.

Add domain record

Tiếp tục vào Custom HTTPD Configurations như hình dưới đây:

Custom HTTPD Configurations

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.

Add server Alias

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:


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]


ErrorDocument 404 /index.php

Exit mobile version