Problème rewriting/htaccess une variable

WRInaute passionné
Bonjour à tous

j'ai un problème de rewriting
je voudrais réecrire http://www.example.com/refer.php?id=46 en http://www.example.com/refer-46.php

Pour l'instant mon htaccess est comme ça :
Code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule .* /index.php [QSA,L]

Pour effectuer la réecriture j'ai besoin de ces lignes je pense :
Code:
RewriteRule ^report-([0-9]+)\.php$  report.php?id=$1  [L]
RewriteRule ^refer-([0-9]+)\.php$  refer.php?id=$1  [L]

Mais ça ne fonctionne pas j'ai l'impression que ça vient d'un conflit avec ma première règle, quelqu'un aurait une idée svp ?
Merci :)
 
WRInaute occasionnel
Il faut les mettre juste après le RewriteEngine On, sinon effectivement ton autre règle et ses conditions vont prendre le dessus automatiquement
 
WRInaute passionné
Merci pour vos réponses
@DjApx j'ai pas bien compris mais si je l'enlève mon rewriting ne marche plus. Les règles complémentaires c'est pour réecrire les pages signaler et recommander que j'ai rajoutées et qui ne sont pas réecrites avec la première règle.
 
WRInaute occasionnel
La première règle fait ça :
SI "la requete n'est pas un fichier existant"
ET SI "la requete n'est pas un répertoire existant"
ET SI "la requete n'est pas un lien existant"
ALORS quelle que soit la requête, ouvre plutot index.php

Elle est pas imbitable du tout cette règle
(et en fait, index.php traite quand même l'URL passée, c'est comme ça que fonctionne le rewrite Wordpress par exemple).
 
WRInaute occasionnel
essaye ça :
Code:
RewriteEngine On

RewriteRule ^report-([0-9]+)\.php$  report.php?id=$1  [L]
RewriteRule ^refer-([0-9]+)\.php$  refer.php?id=$1  [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /index.php [QSA,L]

et si ça ne fonctionne pas, ajoute un '/' comme ça
Code:
RewriteRule ^/report-([0-9]+)\.php$  /report.php?id=$1  [L]
RewriteRule ^/refer-([0-9]+)\.php$  /refer.php?id=$1  [L]

Y'a pas de raison que ça ne fonctionne pas d'une façon ou de l'autre (ou alors y'a un détail qui m'échappe)
 
WRInaute passionné
Non il y a rien qui t'échappe ;)
Je n'avais pas tout à fait suivi tes instructions, ça ne risquait pas de marcher.
Merci beaucoup ça fonctionne maintenant à merveille :)
 
Nouveau WRInaute
Bonjour,
j'ai un petit problème que j'aime bien le comprendre.
En Faite je souhaite réaliser une réécriture d'URL en utilisant le fichier .htacces de la façon suivante:
http://www.monsite.com/hotels.php?res=1&hotId=60 à http://www.monsite.com/hotels-1-60
voilà le code que j'ai utilisé:
---------------------------------------------------------------------------------------------------------
Options +FollowSymlinks

# Activation de réécriture d'URL :
RewriteEngine on
#--------------------------------------------------
# Règles de réécriture d'URL :
#--------------------------------------------------
RewriteRule ^hotels-([0-9]+)-([0-9]+)\.html$ /layer/interne/hotels.php?res=$1&hotId=$2 [L]
-------------------------------------------------------------------------------------------------------------
mais je comprend pas pourquoi ce la ne fonctionne pas et l'ancienne URL persiste toujours , qlq1 peut m'aider svp ??? :(
Merci d'avance
 
Discussions similaires
Haut