Réécriture d'URL et formulaires GET dans Apache / PHP
-
05-07-2019 - |
Question
J'ai activé la réécriture d'URL sur mon site PHP avec Apache ( http://example.com/ index.php? param = 12 devient http://example.com/index/param/ 12 ).
J'ai quelques formulaires qui sont dans GET au lieu de POST.
Après avoir soumis le formulaire, l'URL résultante n'est pas réécrite.
Est-il possible de conserver les URL réécrites après avoir soumis un formulaire GET?
UPDATE: j'ai trouvé cet article sur le sujet http://matthewjamestaylor.com/blog/how-to-post-forms-to-clean-rewritten-urls , mais je n'aime vraiment pas l'idée de rediriger vers une URL réécrite. N'y a-t-il vraiment aucun moyen de conserver les URL réécrites sans rediriger les utilisateurs?
UPDATE 2: Voici un exemple de ce que j'essaie de faire. Disons que j'ai un formulaire simple comme celui-ci:
<form method="get" action="">
<fieldset>
<input type="text" name="q" />
<input type="submit" value="Search" />
</fieldset>
</form>
et disons que mon URL est http://example.com/index/param/12
Après avoir soumis le formulaire GET, l’URL devient http: // example.com/index/param/12?q=my-input-text , alors que j'aimerais obtenir une URL réécrite telle que http://example.com/index/param/12/q/my-input-text
La solution
On dirait que si vous voulez que votre formulaire accède directement à / q / my-input-text
, vous devez utiliser JavaScript pour que cela se produise dans le onSubmit
du formulaire. / p>
Autres conseils
apache mod_rewrite ne traite que les URL entrantes (de requête) - il n’a aucun contrôle sur les URL générées dans vos scripts php. C’est quelque chose que vous devriez prendre soin de vous.