Rewriting url avec variable par .htaccess

Nouveau WRInaute
bonjour à tous

j'aimerai réécrire une url avec variable pour qu'elle apparaisse en url sans variable dans la barre adresse
avec une règle de reécriture dans un .htaccess

url : http://www.monsite.com/mapage.php?maId=xxxxxxxasalaposugikaf796148

à reécrire en

url : http://www.monsite.com/mapage.php

sachant qu'il y a une seule variable de 27 caractères,série de lettres + série de chiffres, je ne sais pas si cela à de l'importance ...

voili voila si une bonne ame peut me suggérer les lignes de codes parceque je suis une buse et que toutes les règles que j'ai testé ne donnent rien :?
(mod_rewrite, chemin d'accès des fichiers OK, j'ai essayé d'autres règles, ça marche)

merci merci
 
Nouveau WRInaute
bonjour mahdivitchee
merci pour ta réponse mais dans l'url à reécrire, il y une variable qui par définition est variable ! (ici un id de session) donc je ne pense pas que ton code soit adapté
merci aussi pour le lien mais j'ai deja épuisé a peu près toutes les solutions des faqs sur le sujet et malheureusement jusqu'ici rien ne fonctionne, (j'ai peut etre mal appliqué les règle proposées ! :( )

donc je reformule ma question >>> mon premier post et merci pour vos futures réponses
 
WRInaute discret
Bonjour

j'ai pas compris le role de cette réécriture

normalement le vrai sens :

la mapage.php?maId=xxxxxxxasalaposugikaf796148 vers mapgae-xxxxxxxasalaposugikaf796148.php ( ou html ) et pas vers mapage.php


si le cas

le code sera simple : ( quelquechose-variableidsession.html )

Code:
RewriteRule ^(.*)-([a-z-]+)-([0-9]+)\.html$ mapage.php?ida=$3 [L]

sinon tester encours ce code

Code:
RewriteEngine On
RewriteRule mapage.php mapage.php?maId=([a-z-]+)-([0-9]+)  [L]

mon email est mahdivitche[at]hotmail.com


bonne journée
 
Nouveau WRInaute
merci de ton aide mais ça ne fonctionne pas !
apparament virer une variable de session par .htaccess n'est pas possible
je vais trouver une autre solution
merci
 
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çcont 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 ??? :(
 
WRInaute discret
tu mets :RewriteRule ^hotels-([0-9]+)-([0-9]+)\.html$ /layer/interne/hotels.php?res=$1&hotId=$2 [L]

or dans l'url que tu veux, il y a hotels-1-60 et pas de ".html" ca biens peut être de la ?
 
WRInaute discret
Tu as essayé :

RewriteRule ^hotels-([0-9]+)-([0-9]+)\.html$ /layer/interne/hotels.php?res=$1&hotId=$2 [L]

et d'aller sur hotels-1-60.html (et pas php ou autre...)

tu n'est pas redirigé vers /layer/interne... ?
tu as une erreur 500 ?

quel est ton retour ???
 
Nouveau WRInaute
quand je mets: RewriteRule ^hotels-([0-9]+)-([0-9]+)\.html$ /layer/interne/hotels.php?res=$1&hotId=$2 [L]
et puis j'actualise l'url dynamique www.monsite.com/hotels.php?res=1&hotId=60 s'affiche toujours comme si j'ai rien mis dans mon .htaccess et j'ai pas d'erreur comme retour c'est à dire rien ne change.

(layer/interne c'est le répertoire où se trouve mon dossier hotels)
 
Nouveau WRInaute
je l'ai testé aussi, mais ça n'a pas marché... je comprend pas d'où vient le pb, je vois que la syntaxe du code est correcte !!!!
t'as pas une autre idée ?
est ce le dossier ou je mets mon .htacess c'est lui qui est erroné ?
 
WRInaute discret
Juste une remarque, il ne faut pas tester sur l'url avec les paramètres (c'est normal qu'elle ne change pas) mais sur l'url ré-écrite. Il faut tester le fonctionnement de ton rewriting en actualisant une url du genre /hotel-X-Y.html afin de voir si cela marche ou bien si tu choppe une erreur 404 ou 500

tunidsieinformation a dit:
quand je mets: RewriteRule ^hotels-([0-9]+)-([0-9]+)\.html$ /layer/interne/hotels.php?res=$1&hotId=$2 [L]
et puis j'actualise l'url dynamique http://www.monsite.com/hotels.php?res=1&hotId=60 s'affiche toujours comme si j'ai rien mis dans mon .htaccess et j'ai pas d'erreur comme retour c'est à dire rien ne change.

(layer/interne c'est le répertoire où se trouve mon dossier hotels)
 
Nouveau WRInaute
voila j'ai trouvé la solution :)
il suffit de mettre le code dans le .htacess de la façon suivante:

RewriteEngine on
RewriteRule ^hotels-([0-9]+)-([0-9]+)\.php$ hotels.php?res=$1&hotId=$2 [L]


:eek: :eek: :eek: :eek: :eek:
 
Discussions similaires
Haut