Erstens: Sie haben einen Syntaxfehler. [0-9+] ist eine Zeichenklasse, die mit (i) Ziffern im Bereich 0 übereinstimmen kann bis 9 , oder (ii) ein + Schild. Um den + zu verwenden als Quantifizierer (wie vorgesehen) verschieben Sie + nach dem ] , etwa so:([0-9]+) .
Zweitens: Sie verwenden $2 in Ihrem Artikel, der der Produktname ist. Wenn Sie die ID verwenden möchten, müssen Sie $1 verwenden .
Hier ist, was Sie verwenden müssen:
RewriteEngine On
RewriteRule ^products/([0-9]+)\-([a-z0-9_\-]+)/?$ products.php?product_id=$1 [NC,L,QSA]
Ich habe die Produktnummern, Bindestriche und Unterstriche hinzugefügt, falls Sie es eines Tages brauchen.
Dritter: Sie sollten sich der SQL-Injektionen bewusst sein , ist Ihr Skript nicht sicher. Sie können dies beheben, indem Sie mysql_real_escape_string verwenden .