Tạo sub-domain bằng Apache WildCard DNS

Vấn đề subdomain được nhiều bạn quan tâm, nên lần này TKS xin viết bài hướng dẫn tạo subdomain theo user như kiểu các dịch vụ blog hay làm : letung.thietkeso.vn chẳng hạn
Giải pháp trình bày dưới đây là tạo các tên miền ảo bằng wildcard DNS. Bài sử dụng phần mềm quản lí DirectAdmin làm ví dụ.

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 hosting lo cho vụ này.

DNS AdministratorDNS 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 recordAdd domain record

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

Custom HTTPD ConfigurationsCustom 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 AliasAdd 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ụ letung.thietkeso.vn ==>  thietkeso.vn?username=letung 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.thietkeso.vn[NC,OR]
RewriteCond %{HTTP_HOST} ^thietkeso.vn[NC]
RewriteRule ^(.*) $1 [L]

#redirect wildcard subdomains
RewriteCond %{HTTP_HOST} ([^.]+)\.thietkeso.vn[NC]
RewriteRule ^$ /program.php?user=%1 [L]

ErrorDocument 404 /index.php
FOLLOW US

Leave a Reply

Your email address will not be published. Required fields are marked *