Za prvé: máte chybu syntaxe. [0-9+] je třída znaků, která může odpovídat (i) číslicím v rozsahu 0 až 9 , nebo (ii) + podepsat. Chcete-li použít + jako kvantifikátor (jak bylo zamýšleno) přesuňte + za ] , třeba takto:([0-9]+) .
Za druhé: Používáte $2 ve vaší položce, což je název produktu. Pokud chcete použít ID, musíte použít $1 .
Zde je to, co musíte použít:
RewriteEngine On
RewriteRule ^products/([0-9]+)\-([a-z0-9_\-]+)/?$ products.php?product_id=$1 [NC,L,QSA]
Přidal jsem čísla produktů, pomlčku a podtržítko pro případ, že to někdy budete potřebovat.
Za třetí: Měli byste si být vědomi sql injection , váš skript není bezpečný. Můžete to opravit pomocí mysql_real_escape_string .