Hướng dẫn gỡ bỏ thuộc tính fbclid của Facebook trong đường dẫn rewrite Apache

Điểm bài viết
[Tổng cộng: 0 Trung bình: 0]

Gần đây mình có nhận thấy một lượng lớn truy cập bị gắn theo parameter fbclid do Facebook tạo ra khi bạn chia sẻ liên kết qua mạng xã hội này. Nó có thể dẫn tới việc bị block (nếu có các rule bảo mật chặn). Bài viết này sẽ hướng dẫn bạn cập nhật để gỡ bỏ nó trong liên kết truy cập.

Đường dẫn truy cập từ Facebook bị ảnh hưởng như thế nào?

Bạn sẽ nhận thấy, thay vì:

https://codetot/category/wordpress

Nó sẽ chuyển thành:

https://codetot.net/category/wordpress?fbclid=342ert23423

Tức các đường dẫn nguyên bản bị gắn theo ?fbclid vào phía sau. Một số phần rewrite chưa kĩ, ví dụ như sử dụng Lavarel mà dev chưa viết kĩ phần rewrite cho parameter thì dễ bị tèo, lấy ví dụ:

RewriteRule ^tuyen-dung/(.*)/(.*).html?$ index.php?mod=tuyendung&task=view&g_alias=$1&alias=$2%{QUERY_STRING} [PT,QSA]
RewriteRule ^tuyen-dung.html$ index.php?mod=tuyendung&%{QUERY_STRING} [L]
RewriteRule ^tuyen-dung/(.*).html$ index.php?mod=tuyendung&task=list&alias=$1&%{QUERY_STRING} [PT,QSA]

Mỗi khi người dùng vào liên kết, ví dụ như liên kết sau, mọi thứ sẽ không hoạt động.

/tuyen-dung/marketing/marketing-online-150.html?fbclid=IwAR3T30iIjdm1JF4hojfjtHJM-QDAwzh6BhuL29zCphXKh6GRAJUv-RNs-S4

Hướng dẫn xử lý nhanh gọn vấn đề này

Bạn cần sửa file .htaccess và cập nhật nội dung sau ở ngay phía đầu, sau RewriteEngine: on nhé:

RewriteCond %{QUERY_STRING} ^(.*)(?:^|&)fbclid=(?:[^&]*)((?:&|$).*)$ [NC]
RewriteCond %1%2 (^|&)([^&].*|$)
RewriteRule ^(.*) /$1?%2 [R=301,L]

Ví dụ, đoạn code đầy đủ :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^(.*)(?:^|&)fbclid=(?:[^&]*)((?:&|$).*)$ [NC]
RewriteCond %1%2 (^|&)([^&].*|$)
RewriteRule ^(.*) /$1?%2 [R=301,L]
</IfModule>

Hi vọng rằng bạn sẽ test thử và thấy đoạn code trên hoạt động nhé.

avatar
  Subscribe  
Notify of