web-dev-qa-db-fra.com

Tricky défi mod_rewrite

J'énumère environ 9 000 enregistrements sur mon petit site. En ce moment, je leur montre une page dynamique, comme

http://domain.com/records.php?id=019031

Mais j'aimerais commencer à utiliser des URL significatives comme celle-ci sur Amazon.

http://www.Amazon.co.uk/Library-Mythology-Oxford-Worlds-Classics/dp/0199536325

où la chaîne de titre au niveau racine est ignorée et les demandes sont redirigées vers la page records.php, qui accepte l'ID comme d'habitude.

Est-ce que quelqu'un sait comment je pourrais y arriver avec mod_rewrite? Je me demande comment je pourrais traiter les requêtes adressées à mes autres pages de niveau racine, telles que http://domain.com/contact.php, que je ne souhaite pas rediriger vers la page d'enregistrements.

1
And Finally

Essayez ceci dans la racine de votre .htaccess:

RewriteEngine on
RewriteRule ^[^/]+/(\d+)$ records.php?id=$1 [QSA]

http://example.com/foo-bar/42 sera réécrit en http://example.com/records.php?id=42

Cela n'affectera pas les URL telles que contact.php, car il ne correspond pas à ^[^/]+/(\d+)$

1
Floern