Sử dụng nhiều domain cho một website WordPress

Vấn đề là trang Note này của mình với tên miền là vinhnguyen.info. Nhưng mình có nhiều tên miền muốn trỏ về trang Note này. Nếu làm đơn thuần thì nó sẽ tự động chuyển về tên miền mặc đinh. Và mình đã tìm được cách này không nhớ lấy ở trang nào nữa vì cái này minh cũng lưu trong Note cá nhân từ lâu rồi.

Các địa chỉ truy cập trực tiếp vào trang Note này của mình:

Chúng ta cần giải quyết 3 vấn đề:

  1. Parked domain (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)
  2. Chuyển WP_SITEURL và WP_HOME về domain mà khách hàng truy cập
  3. Cài đặt SEO để tránh google đánh dấu nhiều website trùng nội dung.

1. Chuyển WP_SITEURL và WP_HOME

Ví dụ khi ta thêm parked domain (Aliases) your-domain.com.au vào your-domain.com mặc định khi truy cập vào your-domain.com.au  trình duyệt sẽ tự động redirect về domain chính là your-domain.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.

2. 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 = '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.

3. 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 . Như font icon không load đượ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 !

Vinh Nguyễn

Vinh Nguyễn

Mình thì không học về chuyên môn IT, chính vì vậy mình hiểu thế nào thì viết thế, và viết cũng toát hết được. Bạn nào có đọc các bài viết cần hỏi thêm hoặc đóng góp gì thêm thì có thể để lại comment ở dưới hoặc qua phần liên hệ.

Subscribe
Notify of
0 Bình luận
Mới nhất
Cũ nhất Bình chọn nhiều
Inline Feedbacks
Xem toàn bộ bình luận

Có thể bạn quan tâm...

0
Viết bình luận...x