Vấn đề được đặt ra là ta có 2 domain web-site-a.com và web-site-a.vn yêu cầu chạy chung trang web. Làm sao để khi vào domain nào thì trên thanh địa chỉ vẫn giữ nguyên domain đó chứ không bị redirect sang 1 domain cố định.
Và sau đây chúng ta sẽ từng bước thực hiện yêu cầu trên.
Có các bước cần thực hiện như sau:
- Cài đặt hoàn chỉnh website theo 1 tên miền trước (chẳng hạn web-site-a.com)
- Parked domain web-site-a.vn (Aliases) về hosting đang chạy site chính và trỏ đúng về thư mục của site chính luôn (thường là /public_html)
- Chuyển WP_SITEURL và WP_HOME về domain mà khách hàng truy cập
- Cài đặt bổ sung chức năng SEO để không bị Google đánh dấu nhiều website trùng nội dung.
- Khắc phục lỗi font khi chạy domain alias
Chuyển WP_SITEURL và WP_HOME
Ví dụ khi ta thêm parked domain (Aliases) web-site-a.vn vào web-site-a.com mặc định khi truy cập vào web-site-a.vn trình duyệt sẽ tự động redirect về domain chính là web-site-a.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
//Multi Domain for a site define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']); define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
Khi bạn thêm vào thì công việc gần như đã xong. Bạn đã có thể truy cập vào các parked domain (Aliases) bình thường. Nhưng có 1 vấn đề đặt ra là khi có nhiều domain trỏ về về website như vậy thì sẽ ảnh hưởng tới SEO. Google sẽ nhận diện copy bài viết và bạn sẽ bị mất thứ hạng trên công cụ tìm kiếm Google. Đừng lo lắng, mình cũng có 1 giải pháp giành cho các bạn.
Cài đặt SEO tránh giảm thứ hạng trên Google
Nếu các bạn dùng plugin Yoast SEO thì 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 = 'web-site-a.com';// Thay đổi về site chính vd:ở đây là web-site-a.com $parsed = parse_url(home_url()); $current_site_domain = $parsed['host']; return str_replace($current_site_domain, $domain, $url); }
Khắc phục lỗi font khi chạy với domain phụ (nếu có)
Cách khắc phục lỗi Access to Font at … form origin … has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin … is therefore not allowed access.
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!