Cấu hình Aliases nhiều domain cho 1 website WordPress
Hướng dẫn WordPress · cập nhật 31/07/2026
Để cấu hình aliases nhiều domain cho 1 website WordPress, bạn thêm tên miền phụ dạng Alias vào hosting đang chạy site chính, sửa wp-config.php cho WordPress nhận tên miền theo địa chỉ khách đang gõ, rồi khai canonical về một tên miền duy nhất. Toàn bộ mất khoảng 20 phút.
Việc này cần làm khi bạn có hai tên miền cho cùng một doanh nghiệp, ví dụ web-site-a.com và web-site-a.vn, và muốn khách gõ tên miền nào thì thanh địa chỉ giữ nguyên tên miền đó. Mặc định hosting sẽ đá thẳng tên miền phụ về tên miền chính, làm mất công đăng ký tên miền thứ hai.
- Cài xong website hoàn chỉnh trên một tên miền chính.
- Thêm tên miền thứ hai dạng Alias, trỏ về đúng thư mục của site chính.
- Sửa
wp-config.phpđể WP_SITEURL và WP_HOME chạy theo tên miền khách truy cập. - Khai canonical về tên miền chính để Google không xem là nội dung trùng.
- Mở CORS cho font nếu chữ hiển thị hỏng trên tên miền phụ.
Sao lưuwp-config.php,functions.phpvà.htaccesstrước khi sửa. Ba file này sai một dấu là website trả về màn hình trắng hoặc lỗi 500, và trang quản trị cũng không vào được để sửa lại. Tải bản gốc về máy qua FTP hoặc File Manager, đặt tên kèm ngày để biết bản nào là bản cũ.
Alias khác Addon Domain và Subdomain ở chỗ nào
Alias, còn gọi là Parked Domain, là tên miền thứ hai trỏ về đúng thư mục và đúng website của tên miền chính. Người truy cập thấy cùng một nội dung dù gõ tên miền nào. Addon Domain thì ngược lại: mỗi tên miền có thư mục riêng, chạy website riêng, cài WordPress riêng.
Chọn nhầm loại là mất công làm lại từ đầu. Bảng dưới so ba kiểu tên miền hay bị lẫn với nhau trên cùng một gói hosting.
| Kiểu | Thư mục | Nội dung | Dùng khi nào |
|---|---|---|---|
| Alias (Parked Domain) | Dùng chung với tên miền chính | Giống hệt tên miền chính | Một doanh nghiệp giữ nhiều đuôi tên miền |
| Addon Domain | Thư mục riêng | Website hoàn toàn khác | Chạy nhiều website trên một gói hosting |
| Subdomain | Thư mục riêng | Website khác, cùng tên miền gốc | Tách blog, shop, trang tài liệu |
Cách thêm Alias khác nhau tuỳ bảng điều khiển. Trên DirectAdmin, mục nằm ở Account Manager rồi Domain Pointers. Trên cPanel là Domains rồi Aliases. Trên Plesk là Websites & Domains rồi Add Domain Alias. Điểm chung là phải trỏ đúng thư mục gốc của site chính, thường là public_html.
Vì sao WordPress đá tên miền phụ về tên miền chính
WordPress lưu địa chỉ website cố định trong hai giá trị siteurl và home của bảng wp_options. Mỗi lần tải trang, WordPress so địa chỉ khách đang gõ với hai giá trị đó, thấy lệch là chuyển hướng về giá trị đã lưu. Alias khai đúng ở hosting rồi mà vẫn bị đá là do bước này.
Nói cách khác, phần việc trên hosting mới giải quyết được nửa đường: máy chủ đã chịu nhận tên miền phụ, nhưng WordPress chưa chịu. Sửa thẳng hai giá trị trong cơ sở dữ liệu cũng không xong, vì chỉ ghi được đúng một tên miền vào ô đó.
Các bước cấu hình aliases nhiều domain cho 1 website WordPress
Ba bước dưới đây làm sau khi Alias đã khai xong trên hosting và tên miền phụ đã trỏ NS về đúng máy chủ. Bạn cần quyền sửa file qua FTP hoặc File Manager, và quyền quản trị WordPress. Bước nào cũng nên tải bản gốc của file về máy trước khi lưu đè.
1. Cho WP_SITEURL và WP_HOME chạy theo tên miền khách gõ
Mở wp-config.php ở thư mục gốc website. Thêm hai dòng dưới đây vào phía trên dòng có ghi /* That's all, stop editing! */.
// Nhieu ten mien cho mot website
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);
Hai hằng số này đè lên giá trị lưu trong cơ sở dữ liệu, nên WordPress lấy luôn tên miền khách đang gõ làm địa chỉ website. Link bài viết, link chuyên mục và đường dẫn ảnh đều theo tên miền đó.
Ghi https:// chứ không phải http:// nếu website đã có SSL cho cả hai tên miền. Để http:// trong khi trang chạy HTTPS thì trình duyệt báo nội dung hỗn hợp, ảnh và file CSS bị chặn. Chứng chỉ phải phủ cả tên miền phụ, không thì tên miền phụ hiện cảnh báo bảo mật.
Sau khi thêm hai dòng này, mục Cài đặt rồi Chung trong trang quản trị WordPress sẽ khoá hai ô địa chỉ lại, không sửa được nữa. Đây là hành vi bình thường của WordPress khi giá trị bị khai trong wp-config.php, không phải lỗi.
2. Khai canonical về tên miền chính
Nội dung giống nhau nằm trên hai tên miền thì Google phải tự đoán bản nào là bản gốc. Thẻ canonical trả lời thay, chỉ thẳng bản gốc nằm ở tên miền nào, nên hai tên miền không tranh thứ hạng của nhau.
Website dùng plugin Yoast SEO thì thêm đoạn dưới vào functions.php của theme con. Thay web-site-a.com bằng tên miền chính của bạn.
// Ep canonical ve ten mien chinh
add_filter('wpseo_canonical', 'bizmac_canonical_domain_replace');
function bizmac_canonical_domain_replace($url) {
$domain = 'web-site-a.com';
$parsed = parse_url(home_url());
return str_replace($parsed['host'], $domain, $url);
}
Đặt đoạn này vào theme con chứ đừng đặt vào theme mẹ. Theme mẹ cập nhật là functions.php bị ghi đè, đoạn code biến mất mà không có thông báo nào.
Dùng Rank Math thay cho Yoast thì đổi tên bộ lọc thành rank_math/frontend/canonical, phần còn lại giữ nguyên. Không dùng plugin SEO nào thì móc vào get_canonical_url của WordPress.
3. Mở CORS cho font trên tên miền phụ
Bước này chỉ làm khi chữ trên tên miền phụ hiện sai kiểu và bảng Console của trình duyệt in dòng lỗi nguyên văn như sau:
Access to Font at '...' from origin '...' has been blocked by CORS
policy: No 'Access-Control-Allow-Origin' header is present on the
requested resource.
Lỗi này sinh ra khi file font được nạp từ tên miền chính trong khi trang đang chạy ở tên miền phụ. Trình duyệt xem đó là hai nguồn khác nhau và chặn font lại. Thêm đoạn dưới vào .htaccess ở thư mục gốc website.
<IfModule mod_headers.c>
<FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
Chỉ liệt kê đuôi file font, đừng thêm css và js vào danh sách như một số hướng dẫn cũ. Mở CORS cho toàn bộ file CSS và JS là mở rộng hơn mức cần thiết, trong khi lỗi chỉ nằm ở font.
Cách kiểm tra hai tên miền đã chạy chung website
Mở tên miền phụ bằng cửa sổ ẩn danh, tránh bộ nhớ đệm của trình duyệt giữ lại kết quả chuyển hướng cũ. Thanh địa chỉ giữ nguyên tên miền phụ sau khi trang tải xong là bước cấu hình wp-config.php đã ăn.
Bốn điểm cần soát tiếp:
- Bấm vào một bài viết bất kỳ, link phải giữ tên miền phụ chứ không nhảy sang tên miền chính.
- Ảnh trong bài hiển thị đủ, không có ô vỡ.
- Ổ khoá SSL còn nguyên trên cả hai tên miền.
- Bấm chuột phải rồi chọn xem mã nguồn, tìm dòng
rel="canonical". Dòng này phải ghi tên miền chính kể cả khi bạn đang xem tên miền phụ.
Sau khi cả bốn điểm đều đạt, khai tên miền phụ vào Google Search Console như một tài sản riêng. Google cần thấy thẻ canonical từ chính tên miền phụ mới hiểu quan hệ giữa hai bên.
Xử lý các lỗi thường gặp khi chạy nhiều tên miền chung site
Năm tình huống dưới đây chiếm phần lớn ca cấu hình hỏng. Phần lớn nằm ở thứ tự thao tác chứ không nằm ở đoạn code.
Tên miền phụ vẫn bị đá về tên miền chính. Hosting đang khai tên miền phụ dạng chuyển hướng chứ không phải Alias, hoặc wp-config.php đã sửa nhưng chưa lưu lên máy chủ. Kiểm lại mục Alias trong bảng điều khiển trước, rồi mở file trên máy chủ xem hai dòng define còn nguyên không.
Website trả về màn hình trắng sau khi sửa wp-config.php. Đoạn code bị dán sau dòng require_once ABSPATH . 'wp-settings.php';, hoặc thiếu dấu chấm phẩy. Khôi phục bản đã sao lưu rồi dán lại đúng chỗ.
Tên miền phụ báo chứng chỉ không hợp lệ. SSL mới cấp cho tên miền chính. Cấp thêm chứng chỉ cho tên miền phụ, hoặc dùng chứng chỉ phủ nhiều tên miền. Bài cài SSL Let's Encrypt trên DirectAdmin có phần chọn tên miền khi cấp chứng chỉ.
Ảnh trong bài cũ vẫn trỏ về tên miền chính. Đường dẫn ảnh được lưu cứng trong nội dung bài từ lúc soạn, hai hằng số define không đụng tới. Ảnh vẫn hiện được nên đa số trường hợp bỏ qua được, cần gọn thì đổi đường dẫn ảnh trong bài sang dạng tương đối.
Google xếp hạng tên miền phụ thay vì tên miền chính. Thẻ canonical chưa chạy, hoặc đang trỏ ngược. Xem mã nguồn trang trên tên miền phụ và đối chiếu dòng canonical. Google cần vài tuần để nhận cấu hình mới, đừng đổi qua lại trong lúc chờ.
Việc cần làm sau khi tên miền phụ đã chạy
Ghi lại ba file đã sửa và ngày sửa vào ghi chú của website. Người tiếp quản sau này gặp đoạn code lạ trong functions.php mà không rõ nguồn gốc thường xoá đi, rồi hai tên miền quay lại tranh thứ hạng của nhau mà không ai biết vì sao.
Cân nhắc lại nhu cầu trước khi giữ lâu dài. Chạy hai tên miền song song hợp khi bạn cần bảo vệ thương hiệu ở nhiều đuôi tên miền và cả hai đều có khách gõ thẳng. Nếu tên miền phụ gần như không ai truy cập, chuyển hướng 301 thẳng về tên miền chính gọn hơn, dồn toàn bộ tín hiệu SEO về một chỗ và không phải giữ ba đoạn code.
Website còn chạy HTTP thì làm chuyển từ HTTP sang HTTPS cho WordPress trước rồi hãy thêm Alias. Đổi giao thức sau khi đã có hai tên miền là phải sửa lại cả ba file một lượt.