Primo: hai un errore di sintassi. [0-9+] è una classe di caratteri che può corrispondere a (i) cifre nell'intervallo 0 tramite 9 , o (ii) un + cartello. Per utilizzare il + come quantificatore (come previsto), sposta il + dopo il ] , in questo modo:([0-9]+) .
Secondo: Stai usando $2 nel tuo articolo che è il nome del prodotto. Se vuoi usare l'ID, devi usare $1 .
Ecco cosa devi usare:
RewriteEngine On
RewriteRule ^products/([0-9]+)\-([a-z0-9_\-]+)/?$ products.php?product_id=$1 [NC,L,QSA]
Ho aggiunto i codici prodotto, il trattino e il trattino basso nel caso ne avessi bisogno un giorno.
Terzo: Dovresti essere a conoscenza di sql injections , il tuo script non è sicuro. Puoi risolvere questo problema utilizzando mysql_real_escape_string .