Đầu tiên: bạn có một lỗi cú pháp. [0-9+]
là một lớp ký tự có thể khớp với (i) các chữ số trong dải ô 0
thông qua 9
hoặc (ii) một +
dấu hiệu. Để sử dụng +
như một bộ định lượng (như dự định), hãy di chuyển +
sau ]
, như vậy:([0-9]+)
.
Thứ hai: Bạn đang sử dụng $2
trong mục của bạn, đó là tên sản phẩm. Nếu bạn muốn sử dụng ID, bạn phải sử dụng $1
.
Đây là những gì bạn cần sử dụng:
RewriteEngine On
RewriteRule ^products/([0-9]+)\-([a-z0-9_\-]+)/?$ products.php?product_id=$1 [NC,L,QSA]
Tôi đã thêm vào số sản phẩm, dấu gạch ngang và gạch dưới trong trường hợp bạn cần vào một ngày nào đó.
Thứ ba: Bạn nên biết về tiêm sql , tập lệnh của bạn không an toàn. Bạn có thể khắc phục sự cố này bằng cách sử dụng mysql_real_escape_string .