8797 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un souci au niveau de ma réécriture d'url, je passe par un dispatcher pour afficher mes pages, ce dispatcher est la page index.php et j'utilise la règle suivante pour sont fonctionnement:

RewriteRule ^([a-zA-Z0-9\-\_\/\.]*)$ index.php?p=$1 [L]


ce qui fonctionne très bien mais en ajoutant une règles pour l'affichage des articles je me retrouve avec un conflit entre ces deux règles, n'étant pas très fort dans ce domaine je viens demander votre aide.


RewriteRule ^details\/([a-zA-Z0-9\-\_\/\.]*)\/([0-9]+)$ index.php?p=details/index/$1/$2 [L]
RewriteRule ^([a-zA-Z0-9\-\_\/\.]*)$ index.php?p=$1 [L]

Modifié par Franck55 (18 Dec 2010 - 11:55)
Salut,

Dansla mesure où tu n'atteins jamais la deuxième règle si la première est vérifiée (le [L]), je ne vois pas où est le conflit.
Ba moi non plus a vrai dire Smiley smile
c'est pour sa que je pose la question.

par contre c'est sur que sa ne s'arrête pas à la première règle est-ce que c'est possible?

si je met la deuxième règle avant la première la deuxième règle n'est pas prise en compte non plus!

je ne comprend vraiment pas
Salut,

Et comme ça :


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^details/(.*?)/([0-9]+)$ index.php?p=details/index/$1/$2 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?p=$1 [QSA,L]
Merci bilhackmac !!!

Sa fonctionne, je comprend mieux maintenant j'avais fais comme ceci moi:


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9\-\_\/\.]*)$ index.php?p=$1 [L]
RewriteRule ^details\/([a-zA-Z0-9\-\_\/\.]*)\/([0-9]+)$ index.php?p=details/index/$1/$2[L]