NỘI DUNG
Query String là gì?
Query String là tập hợp các dữ liệu ở dạng key=value mà ta đưa vào đằng sau URL của website, trường hợp có nhiều cặp key=value thì ta sử dụng dấu & để ngăn cách giữa chúng. Thông thường ta sử dụng Query String để truyền tải dữ liệu lên server và ta hay gọi đây là phương thức GET.
Trong PHP các Query String sẽ được lưu trữ trong mảng $_GET, trong đó key chính là phần phía trước dấu = và value chính là phần phía sau dấu =.
Trước khi tìm hiểu Query String là gì thì mình phân tích một chút xíu về cấu trúc URL của một website đã nhé. Giả sử mình có một URL như sau:
https://dotrungquan.info/wordpress/?fbclid=IwAR2_bz8mmZRfLZ8si60fr6F8Nu8QrLsZzGRIHpZ8zZJjAjm3BvI7ZgxXYIY
Trong URL này mình sẽ phân ra làm 2 đoạn để bạn dễ hình dung
- Đoạn 1: Phần URL chính của trang: https://dotrungquan.info/wordpress
- Đoạn 2: Phần đuôi đằng sâu dấu ? : ?fbclid=IwAR2_bz8mmZRfLZ8si60fr6F8Nu8QrLsZzGRIHpZ8zZJjAjm3BvI7ZgxXYIY
Như vậy trong URL trên thì Query String chính là Đoạn thứ 2
Mình sẽ thực hiện thực hiện Xoá bỏ chuổi Query String fbclid đối với các request vào. Bên dưới là một tấm ảnh gốc ban đầu khi chưa xoá bỏ. Truy cập các link từ Facebook sang chuổi vẫn còn
Các bước thực hiện
Bước 1: Sửa file nginx.conf
Bạn hãy mở file nginx.conf
sau đó thêm vào đoạn mã sau. Nếu bạn không biết file nginx.conf
ở đâu có thể sử dụng lệnh nginx -t
để xem nhanh
Lưu ý: Thêm bên trong block http {
# redirect map in http block - remove fbclid argument from the end map $request_uri $redirect_fbclid { "~^(.*?)([?&]fbclid=[a-zA-Z0-9_-]+)$" $1; }
Bươc 2: Cấu hình trong vhost domain
Tiếp theo bạn mở file config vhost domain và thêm vào trong block server { đoạn mã sau
# if redirect map is active, do 301 to the new url
if ( $redirect_fbclid ) {
return 301 $redirect_fbclid;
}
Bây giờ bạn hãy kiểm tra lại cấu hình có lỗi không với lệnh nginx -t
. Nếu trả về kết quả như ảnh đính kèm và dòng thông báo nginx: the configuration file syntax is ok
thì không lỗi. Bây giờ bạn khởi động lại NGINX và kiểm tra kết quả