Nội dung bài viết
Cấu hình 2 tên miền chạy chung một website (Domain Pointer)
Bạn có một website nhưng lại muốn chạy 2 tên miền khách nhau. Ví dụ domain.com và domain2.com. Vậy bạn cần phải làm gì để có thể trỏ nhiều domain về 1 website chạy WordPress?Chúng ta cần giải quyết 3 vấn đề:
- Tạo Domain Pointer
- Cấu hình cho phép gõ tên miền nào thì trên trình duyệt sẽ hiển thị tên miền đó
- Cài đặt SEO để tránh google đánh dấu nhiều website trùng nội dung.
Cấu hình 2 tên miền chạy chung 1 website (Domain Pointer)
1. Domain pointer có tác dụng gì?
Domain pointer là dạng domain chạy song song với domain chính. Khi cấu hình domain pointer, bạn sẽ có 2 domain chạy trên 1 hosting, 1 website, 1 database. Nói cách khác cho dù bạn gõ tên domain nào vào thanh địa chỉ trong web browse đều đến 1 website của bạn trong hosting.
2. Cách cấu hình Domain Pointer
Bước 1: Đăng nhập vào trang quản trị hosting, click [Domain Pointers].
Bước 2: Nhập tên miền phụ vào. Tên miền này sẽ trỏ về tên miền chính trên hosting. Click [Add] để hoàn thành
Chuyển WP_SITEURL và WP_HOME 2 tên miền chạy chung 1 website
Mặc định khi thêm Domian Pointer thì bạn đã có thể truy cập 2 tên miền đều trỏ về cùng 1 website. Tuy nhiên điều bạn muốn làm là khi gõ domain.com thì nó sẽ trả lại URL là domain.com và ngược lại domain2.com thì cũng trả về URL domain2.com. Vì vậy chúng ta cần thêm đoạn code sau vào file wp-config.php để khi khách vào bằng domain nào thì vẫn giữa nguyên ở domain đó và link các bài post, page vẫn ở domain mà khách truy cập.
Thêm đoạn code này vào file wp-config.php
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']); define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);
Vậy là hoàn tất. Bạn đã có thể truy cập vào các domain bạn thích bình thường. Chuyển xuống bước tiếp theo nhé đó là tránh việc bị Google đánh giá trùng nội dung trên nhiều tên miền khác nhau.
Cài đặt SEO tránh giảm thứ hạng trên Google
Chắc chắn khi bạn dùng Worpress thì không thể thiếu plugin Yoast SEO. Hãy thêm đoạn code sau vào file functions.php trong theme để có thể chuyển toàn bộ lưu lượng truy cập canonical về toàn bộ site chính và sẽ không bị google đánh dấu trùng nội dung khi có nhiều parked domain (Aliases)
Thêm đoạn code này vào file functioins.php
//canonical - old domain to new domain add_filter('wpseo_canonical', 'swpseo_canonical_domain_replace'); function swpseo_canonical_domain_replace($url){ $domain = 'your-domain.com';// Thay đổi cái này về site chính của bạn vd ở đây là your-domain.com $parsed = parse_url(home_url()); $current_site_domain = $parsed['host']; return str_replace($current_site_domain, $domain, $url); }
Vậy là đã okie. Bạn có thể sử dụng thoải mái mà không sợ ảnh hưởng tới SEO rồi
Khắc phục lỗi font khi chạy với domain phụ
Khi đã cài đặt xong nhiều domain chạy trên 1 source wordpress nhưng bị lỗi khi load các font .
Bạn hãy copy đoạn code sau vào file .htaccess là được
<IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch> </IfModule>
Chúc các bạn thành công!
Ok good, mình đã chạy được nhưng domain phụ lại không có https kèm theo, có cách nào cho domain phụ vẫn chạy được https không
Chào bạn, không biết bạn đã cài https cho domain phụ chưa.
Chào bạn. Mình cài xong bị lỗi ForbiddenYou don’t have permission to access / on this server.
Cách cài ssl cho domain phụ sao bạn. Mình xài Direct admin
Chào bạn, để giải quyết bạn cần phải cài ssl cho cả domain phụ nhé. Bạn dùng Directadmin thì có thể tạo SSL Let’s Encrypt (Bạn check thử trong giao diện sẽ có nếu vps đã tích hợp phần này vào). Trường hợp chưa có thì cài đặt thêm trong VPS nhé.
Bạn ơi. Bạn cho mình xin tài liệu hướng dẫn cài SSL Let’s Encrypt trên SSH được không bạn. mình xài vps Centos6 mà tìm tài liệu không ra. Cám ơn bạn nhé
Quá trình cập nhật DirectAdmin và các gói quá trình có thể xảy ra lỗi nên bạn nhớ backup data và code trước khi làm.
cd /usr/local/directadmin/custombuild/
./build update
cd /usr/local/directadmin/custombuild/
./build update
Cài đặt Let’s Encrypt.
./build letsencrypt
./build letsencrypt
Bật Let’s Encrypt.
grep -q ‘letsencrypt=1’ /usr/local/directadmin/conf/directadmin.conf || echo ‘letsencrypt=1’ >> /usr/local/directadmin/conf/directadmin.conf
grep -q ‘enable_ssl_sni=1’ /usr/local/directadmin/conf/directadmin.conf || echo ‘enable_ssl_sni=1’ >> /usr/local/directadmin/conf/directadmin.conf
Khởi động lại DirectAdmin.
service directadmin restart
Bây giờ để cài đặt SSL cho domain, bạn vào “Advanced Features” -> “SSL Certificates” chọn domain và kích hoạt SSL nhé.
Cảm ơn admin nhiều ạ. Mình đã thực hiện theo hướng dẫn và đã thành công.