Php avec et sans paramètres

Nouveau WRInaute
Bonjour,

Je souhaite que le fichier produit.php sans paramètre soit envoyé sur l'index.php et avec sur une page spécifique en fonction des paramètres.

Voilà mon code :
Code:
RewriteRule   ^([a-z0-9-]*)_([0-9]*)__([^.]*)\.html  /produit.php?ref=$3&id_rubrique=$2 [NC,QSA,L]
rewriteRule ^produit.php$ /index.php [L]

Cela ne fonctionne pas, dans tous les cas, je suis renvoyé vers l'index.

Merci pour votre aide, Alfouine
 
Nouveau WRInaute
Merci pour vos réponses.

Pour la majuscule, cela ne change rien.
Sinon, j'ai d'autres pages sans paramètres que je ne souhaite pas rediriger vers l'accueil.

Ce que je ne comprends pas, c'est que le paramètre L ne joue pas son rôle.

Alfouine,
 
WRInaute passionné
les deux règles sont appliquées l'une à la suite de l'autre car aucune condition ne l'interdit.
Code:
RewriteRule   ^([a-z0-9-]*)_([0-9]*)__([^.]*)\.html  /produit.php?ref=$3&id_rubrique=$2 [NC,QSA,L]
RewriteCond %{QUERY_STRING} !.+
rewriteRule ^produit.php$ /index.php [L]

le mieux est quand même de gérer ce cas en php : si les paramètres ne correspondent pas à des données valides => redirection avec header().
 
WRInaute impliqué
Les paramètres d'URL ne peuvent être tester directement dans RewriteRule, donc "^produit.php$" valide toutes les requêtes ayant ou non des paramètres.

Pour tester les paramètres, utilise RewriteCond :

RewriteRule ^([a-z0-9-]*)_([0-9]*)__([^.]*)\.html /produit.php?ref=$3&id_rubrique=$2 [NC,QSA,L]
RewriteCond %{QUERY_STRING} ^$
RewriteRule produit.php$ /index.php [L]


EDIT : mince le temps de faire un test pour être sur de ce que j'écris, la réponse est donnée :/
 
Discussions similaires
Haut