8797 sujets

Développement web côté serveur, CMS

Bonjour à tous,
Je souhaite pré-remplir un champ de mon formulaire de contact uniquement si l'internaute a cliqué sur un bouton.

Ma page « contact.php » est donc accessible par deux URL différentes :
• contact.php
• contact.php?id=CHIFFRE_QUELCONQUE

Dans ces deux cas, je souhaite que la réécriture affiche uniquement un dossier virtuel « contact » :
http://www.monSite.fr/contact/

Est-ce possible ?

J'ai essayé cette réécriture et elle fonctionne lorsque la page « contact.php » est appelée sans paramètre :
RewriteRule ^contact/$ contact.php [L]


Ce qui fonctionne aussi c'est de créer un dossier virtuel pour le paramètre « id » :
RewriteRule ^contact/([0-9]+)/$ contact.php?id=$1 [L]


Mais lorsque j'essaie de ne garder que le dossier virtuel « contact », la variable « id » n'est plus accessible et semble avoir été supprimée par le serveur :
RewriteCond %{QUERY_STRING} ^id
RewriteRule ^contact/$ contact.php?(.*) [R,L]


Merci d'avance pour votre aide.
Salut,

Le flag QSA ( Query String Append ) sert à passer les paramètres automatiquement:


RewriteRule ^contact/$ contact.php [QSA,L]
Bonjour JJK801,
merci de ta réponse.
Malheureusement j'avais déjà essayé le drapeau QSA sans succès.
Lorsque j'arrive sur la page contact, la variable « id » est bel et bien vide...

Je vais continuer à chercher.