Thêm / vào cuối url hoặc xoá / trên url website
Khi technical SEO cho 1 số website tôi có gặp trường hợp website lỗi không tự đồng nhất url giữ có / ở cuối url hoặc non-slash ở cuối url nên sẽ bị trùng lặp nội dung, trong bài này tôi share nhanh cách để bạn giải quyết vấn đề nếu gặp trường hợp tương tự.
Sau khi thêm bạn test Nginx với lệnh
Sau khi cập nhật cấu hình Nginx, bạn nên kiểm tra kỹ xem các chuyển hướng có hoạt động như dự kiến hay không. Khi nói đến việc kiểm tra các quy tắc chuyển hướng, cURL là lệnh hữu ích, bạn sẽ muốn sử dụng các yêu cầu HEAD bằng -I flag, cờ này sẽ trả về tiêu đề HTTP mà không cần tải xuống toàn bộ trang.
Nếu bạn dùng SSH có thể test với lệnh
I. Thêm / vào url hoặc xoá / url trên Litespeed/Apache
Để dễ hình dùng trường hợp này mình sẽ đưa ra ví dụ để bạn hiểu vấn đề. Ví dụ có 2 url như ở dưới. Bạn sẽ thấy chúng khác nhau mỗi dấu / cuối url, vậy nếu website lỗi thì khi truy cập vào 1 trong 2 url kia đều hiển thi nội dung giống y chang nhau (vì thực chất là 1 bài viết nhưng lại có đến 2 url dẫn đến => trùng lặp nội dung). Trong Google search console nó cũng sẽ báo cáo là Alternate page with proper canonical tag vì 1 nội dung mà có tới 2 url.https://ngoinhaweb.vn/chuyen-huong-spam-search/
và
https://ngoinhaweb.vn/chuyen-huong-spam-search
Để giải quyết vấn đề trên thì bạn chọn 1 trong 2 cách là thêm /
vào cuối mỗi url hoặc xoá /
ở cuối mỗi url.
Nếu bạn sử dụng mã nguồn WordPress có mục Cài đặt > Đường dẫn tĩnh để có thể thêm / hoặc xoá / cuối url, tuy nhiên nhiều website lỗi khi bạn nhập ở này vẫn không thể giải quyết được việc thống nhất việc có / hoặc không có / cuối url.
Để giải quyết vấn đề bạn có thể sử dụng code dưới đây, thêm code cấu trúc bạn muốn vào file .htaccess
là được.
File .htacces là gì và nằm ở đâu bạn có thể xem qua bài viết sau nhé.
1. Bắt buộc thêm / vào cuối url
Bạn có thể thêm code này vào file .htaccess, bạn thêm ở đầu file nhé, vì thêm ở cuối file sẽ có vấn đề.
1 2 3 4 5 |
# Bat buoc them / vao url de khong trung lap noi dung RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ $1/ [L,R=301] |
2. Xoá / ở cuối url
1 2 3 4 |
// Xoa / cuoi url RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] |
3. Xoá / trên Cloudflare
Nếu bạn sử dụng Cloudflare thì có thể set chuyển hướng xoá / ở cuối url bằng cách vào mục Page rules và tạo 1 rule mới như sau. URL nhập vào:https://ngoinhaweb.vn/*/
Destination URL thì nhập vào: https://ngoinhaweb.vn/$1
Nếu url có chuỗi truy vấn bạn có thể set: https://ngoinhaweb.vn/*/?* -> https://ngoinhaweb.vn /$1?$2
II. Thêm hoặc Xoá / trên máy chủ Nginx
Ngoài ra nếu bạn sử dụng máy chủ Nginx thì có thể add code này vào block néserver{}
Nginx đi kèm với mô-đun ngx_http_rewrite_module
, cho phép bạn sửa đổi các URI bằng cách sử dụng các biểu thức thông thường. Đó là một công cụ mạnh mẽ có thể được sử dụng cho các tác vụ như chuyển hướng URL hoặc tạo URL thân thiện với người dùng. Để nối thêm dấu gạch chéo ở cuối.
Mở tệp máy chủ ảo Nginx của trang web của bạn. Tùy thuộc vào nền tảng của bạn, phần này sẽ được định vị khác nhau, nhưng trên các bản phân phối dựa trên Debian, nó thường nằm trong /etc/nginx/sites-available/.
Dưới đây là một số ví dụ dành riêng cho nền tảng:
/etc/nginx/sites-available/domain
Block server ví dụ như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
server { listen 80; server_name vutruso.com; root /var/www/vutruso.com; index index.php; location / { try_files $uri $uri/ /index.php?$args; } rewrite ^([^.]*[^/])$ $1/ permanent; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # Adjust this based on your PHP version fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include snippets/fastcgi-php.conf; } location ~ /\.ht { deny all; } } |
1. Thêm / vào url trên Nginx
1 2 |
# Add trailing slash from URLs rewrite ^([^.]*[^/])$ $1/ permanent; |
2. Xoá / vào url trên Nginx
1 2 |
# Remove trailing slash from URLs rewrite ^/(.*)/$ /$1 permanent; |
sudo nginx -t
và reload lại Nginx với lệnh
1 2 |
sudo service nginx reload #debian/ubuntu systemctl restart nginx #redhat/centos/almalinux |
curl -I https://ngoinhaweb.vn
để xem chúng có chuyển đúng yêu cầu hay không.