Các kỹ thuật chuyển hướng www sang non-www cho tên miền
DzungDo
9 Tháng Mười Một
Redirect thống nhất phiên bản www và none-www nhằm giảm tỉ lệ trùng lặp nội dung và nếu không xử lý thì có thể bị báo lỗi trong Google Search Console hoặc khi quét bằng tool audit cùng bị bão lỗi. Mình đã áp dụng 3 kỹ thuật xử lý nhưng mức đơn giản và tốn ít nguồn lực nhất vẫn là ở phía webserver.
Cách chuyển hướng từ webserver
Máy chủ Nginx
nginx.conf (hoặc vhost.conf)
server {
listen 80;
server_name www.tenmiencuaban.com;
return 301 $scheme://tenmiencuaban.com$request_uri;
}
Máy chủ Apache
Trong file .htaccess
, bạn thêm đoạn mã dưới đây
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^tenmiencuaban\.com$
RewriteRule ^(.*) http://www.tenmiencuaban.com/$1 [R=301]
Máy chủ Caddy
Trong file Caddyfile, cần thêm đoạn này.
https:// {
@www header_regexp www Host ^www\.(.*)$
redir @www https://{re.www.1} 301
}
IIS
Trong file web.config, thêm đoạn rewrite:
<rewrite>
<rules>
<rule name="SecureRedirect" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" pattern="^(www\.)?(.*)$" />
</conditions>
<action type="Redirect" url="https://{C:2}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Cách chuyển hướng bằng ngôn ngữ lập trình
Sử dụng PHP
Quá phổ dụng như PHP thì bạn search Google sẽ ra cả tá code, đoạn sau sẽ có tác dụng với site có nhiều domain khác nhau:
// Get URL parts
$newDomain = substr($_SERVER['HTTP_HOST'], 4);
$requestUri = $_SERVER['REQUEST_URI'];
// Compose new URL
$newUrl = 'https://' . $newDomain . $requestUri;
// Final: Redirect with 301
header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . $newUrl);
Sử dụng Javascript
if (window.location.hostname.indexOf('www') == 0) {
window.location = window.location.href.replace('www.','');
}
Các ngôn ngữ khác, thì mình chưa học xong, :D
67