Tổng quan về sự cố
Khi bạn truy cập một bài viết hoặc một trang có chứa các ký tự không phải ASCII trong slug và tương ứng là trong URL của nó, một quá trình chuyển hướng liên tục sẽ diễn ra.
Điều này xảy ra do cách xử lý các ký tự đó – chúng cần được chuyển đổi và mã hóa đúng cách để có thể được sử dụng làm URL.
Để thực hiện điều này, các hàm urlencode (mở trong tab mới) và urldecode (mở trong tab mới) được sử dụng.
Bạn có thể đọc thêm về chủ đề này tại hai liên kết sau:
- Tại sao tôi nên sử dụng urlencode? (mở trong tab mới) (Stack Overflow)
- Định danh tài nguyên thống nhất (URI) (mở trong tab mới) (Internet Engineering Task Force)
Giải pháp tạm thời
- Đi tới wp-content/sitepress-multilingual-cms/classes/query-filtering/class-wpml-query-parser.php tại dòng 421.
- Trong is_permalink_part_of_request(), thay thế
return substr( trailingslashit( $request_uri ), 0, strlen( $permalink_path ) ) === $permalink_path;
bằng:
return substr( trailingslashit( urldecode( $request_uri ) ), 0, strlen( $permalink_path ) ) === $permalink_path;