Hướng dẫn này sẽ cung cấp cho bạn cách cấu hình nhanh chóng để chạy nhiều domain trên cùng một website WordPress. Tiết kiệm tài nguyên và đơn giản hóa việc quản lý bằng cách sử dụng chung một mã nguồn và database cho tất cả các trang của bạn.
1. Cách cấu hình Multidomain
1.1: Thiết lập trỏ Domain về thư mục gốc của WordPress
1.2: Cấu hình Multidomain qua tệp wp-config.php (Đề xuất)
1.1: Thiết lập trỏ Domain về thư mục gốc của WordPress
Đây là bước tiên quyết cần được thực hiện ở cấp độ máy chủ (server) hoặc hosting, nhằm đảm bảo tất cả các tên miền đều tham chiếu đến cùng một bộ mã nguồn.
- Đối với môi trường Hosting (sử dụng cPanel, DirectAdmin): Sử dụng tính năng Alias Domain (còn gọi là Parked Domain) hoặc Addon Domain, sau đó cấu hình các tên miền này trỏ về thư mục chứa mã nguồn của WordPress.
- Đối với máy chủ riêng (VPS) sử dụng Nginx/Apache: Thực hiện cấu hình Virtual Host (đối với Apache) hoặc Server Block (đối với Nginx) để khai báo tất cả các tên miền cùng sử dụng một document root (thư mục gốc chứa mã nguồn).
Ví dụ về cấu hình Nginx (phiên bản đơn giản hóa):
Nginx
server {
listen 80;
server_name domain-a.com domain-b.com www.domain-b.com;
root /var/www/html/wordpress; # Thư mục gốc chứa WordPress
index index.php index.html;
# ... Các cấu hình khác ...
}1.2: Cấu hình Multidomain qua tệp wp-config.php (Đề xuất)
Nguyên tắc cốt lõi của phương pháp này là tự động xác định tên miền đang được truy cập và gán động các giá trị cho hằng số WP_HOME và WP_SITEURL ngay trong tệp cấu hình.
Bước 1: Sao lưu tệp wp-config.php
Để phòng tránh rủi ro và đảm bảo khả năng phục hồi khi có lỗi xảy ra, việc sao lưu tệp wp-config.php gốc là yêu cầu bắt buộc trước khi tiến hành bất kỳ chỉnh sửa nào.
Cách thực hiện: Sử dụng trình quản lý tệp (File Manager) trên hosting hoặc kết nối qua FTP/SFTP, truy cập vào thư mục gốc của WordPress và tải về một bản sao của tệp wp-config.php.
Bước 2: Chỉnh sửa tệp wp-config.php
Cần bổ sung một đoạn mã logic để hệ thống tự động thiết lập URL của trang web (WP_HOME và WP_SITEURL) dựa trên tên miền mà người dùng đang truy cập.
Vị trí chèn: Thêm đoạn mã sau vào ngay trước dòng: /* That's all, stop editing! Happy publishing. */
Đoạn mã cần thêm:
// Bắt đầu cấu hình Multidomain chung source và database
if (isset($_SERVER['HTTP_HOST'])) {
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
}
// Kết thúc cấu hình Multidomain 
Giải thích: Đoạn mã trên khai thác biến $_SERVER['HTTP_HOST'] để tự động truy xuất tên miền đang được truy cập. Giá trị này sau đó được sử dụng để gán động cho hai hằng số cốt lõi của WordPress là WP_HOME và WP_SITEURL, đảm bảo chúng luôn phản ánh đúng URL của trang với định dạng https://[tên_miền_hiện_tại].
Bước 3: Xóa cache nếu có
Nếu bạn đang sử dụng plugin cache như LiteSpeed Cache, WP Rocket, W3 Total Cache hoặc cache từ máy chủ, hãy xóa toàn bộ bộ nhớ đệm (cache) để đảm bảo cấu hình mới được áp dụng ngay lập tức.
2. Kiểm tra kết quả và xử lý lỗi phổ biến
2.1. Các bước kiểm tra kết quả
- Truy cập các tên miền đã được cấu hình (ví dụ: domain-a.com, domain-b.com).
- Xác nhận rằng nội dung của trang web được hiển thị một cách chính xác.
- Đăng nhập vào trang quản trị WordPress (/wp-admin) thông qua một trong các tên miền.
- Điều hướng đến mục Settings > General. Tại đây, kiểm tra để đảm bảo rằng giá trị của hai trường WordPress Address (URL) và Site Address (URL) được tự động cập nhật theo đúng tên miền bạn đang sử dụng để truy cập.
Lưu ý
Các trường này sẽ bị vô hiệu hóa và không thể chỉnh sửa trên giao diện quản trị, do giá trị của chúng đã được định nghĩa cứng trong tệp wp-config.php.


Kết quả mong muốn: Mọi tên miền đều hiển thị cùng một nội dung website một cách nhất quán, và URL trên trình duyệt không bị chuyển hướng không mong muốn.
2.2. Xử lý lỗi phổ biến
| Lỗi thường gặp | Nguyên nhân | Cách khắc phục nhanh |
| Bị lỗi Redirect loop (Chuyển hướng vô tận) | Xung đột giữa cấu hình HTTPS/SSL (buộc chuyển hướng) và cấu hình Multidomain hoặc CDN/Proxy. | 1. Đảm bảo cấu hình là https:// như trong mã PHP. 2. Thêm dòng define('FORCE_SSL_ADMIN', true); vào wp-config.php. 3. Nếu dùng CDN/Load Balancer, cần khai báo biến SSL phù hợp trong wp-config.php. |
| Domain mới vẫn bị chuyển hướng về domain cũ | Giá trị cũ của site url và home có thể vẫn đang được lưu trong cache hoặc trong database. | 1. Xóa cache của plugin, trình duyệt, và máy chủ. 2. Kiểm tra và chỉnh sửa thủ công giá trị siteurl và home trong bảng wp_options của database (nên đặt giá trị là tên miền chính ban đầu) để tránh xung đột. |
| Lỗi nội dung/hình ảnh không tải được | Nội dung được nhúng với đường dẫn tuyệt đối của domain cũ (ví dụ: http://domain-a.com/image.png). | Sử dụng plugin tìm và thay thế (Better Search Replace) để thay thế tất cả các đường dẫn tuyệt đối cũ trong database thành đường dẫn tương đối (/image.png) hoặc URL của domain mới. |
Bằng cách áp dụng các bước chạy nhiều domain chung một mã nguồn WordPress như trên, bạn không chỉ tiết kiệm đáng kể tài nguyên và thời gian mà còn nâng cao hiệu quả quản lý cho toàn bộ hệ thống website của mình. Trong quá trình thực hiện nếu gặp vấn đề gì khó khăn bạn có thể liên hệ Vietnix để được hỗ trợ kịp thời.
VIETNIX – DỊCH VỤ HOSTING, VPS TỐC ĐỘ CAO, ỔN ĐỊNH, BẢO MẬT
- Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh
- Điện thoại: 1800 1093
- Email liên hệ: sales@vietnix.com.vn
- Website: https://vietnix.vn/

