Riscrittura URL e moduli GET in Apache / PHP
-
05-07-2019 - |
Domanda
Ho abilitato la riscrittura degli URL sul mio sito PHP con Apache ( http://example.com/ index.php? param = 12 diventa http://example.com/index/param/ 12 ).
Ho alcune forme che si trovano in GET anziché in POST.
Dopo aver inviato il modulo, l'URL risultante non viene riscritto.
È possibile mantenere gli URL riscritti dopo aver inviato un modulo GET?
AGGIORNAMENTO: ho trovato questo articolo sull'argomento http://matthewjamestaylor.com/blog/how-to-post-forms-to-clean-rewritten-urls ma non mi piace l'idea di reindirizzare a URL riscritto. Non c'è davvero modo di mantenere gli URL riscritti senza reindirizzare?
AGGIORNAMENTO 2: Ecco un esempio di ciò che sto cercando di fare. Diciamo che ho una forma semplice come questa:
<form method="get" action="">
<fieldset>
<input type="text" name="q" />
<input type="submit" value="Search" />
</fieldset>
</form>
e supponiamo che il mio URL sia http://example.com/index/param/12
Dopo aver inviato il modulo GET, l'URL diventa http: // esempio.com/index/param/12?q=my-input-text , mentre vorrei ottenere un URL riscritto come http://example.com/index/param/12/q/my-input-text
Soluzione
Sembra che se vuoi che il tuo modulo vada direttamente in / q / my-input-text
dovresti usare JavaScript per farlo accadere sul onSubmit
del modulo.
Altri suggerimenti
apache mod_rewrite elabora solo gli URL (richieste) in entrata - non ha alcun controllo sugli URL che generi negli script php. Questo è qualcosa che dovresti prenderti cura di te.