Reescritura de URL y formularios GET en Apache / PHP
-
05-07-2019 - |
Pregunta
He habilitado la reescritura de URL en mi sitio PHP con Apache ( http://example.com/ index.php? param = 12 se convierte en http://example.com/index/param/ 12 ).
Tengo algunos formularios que están en GET en lugar de POST.
Después de submitir el formulario, la URL resultante no se vuelve a escribir.
¿Es posible mantener las URL reescritas después de enviar un formulario GET?
ACTUALIZACIÓN: Encontré este artículo sobre el tema http://matthewjamestaylor.com/blog/how-to-post-forms-to-clean-rewritten-urls pero realmente no me gusta la idea de redireccionar a una URL reescrita. ¿Realmente no hay manera de mantener las URL reescritas sin redirigir?
ACTUALIZACIÓN 2: Aquí hay un ejemplo de lo que estoy tratando de hacer. Digamos que tengo una forma simple como esta:
<form method="get" action="">
<fieldset>
<input type="text" name="q" />
<input type="submit" value="Search" />
</fieldset>
</form>
y digamos que mi url es http://example.com/index/param/12
Luego de enviar el formulario GET, la url se convierte en http: // example.com/index/param/12?q=my-input-text , aunque me gustaría obtener una URL reescrita como http://example.com/index/param/12/q/my-input-text
Solución
Parece que si desea que su formulario vaya directamente a / q / my-input-text
, debe usar JavaScript para que eso suceda en el onSubmit
.
Otros consejos
apache mod_rewrite solo procesa las urls entrantes (de solicitud), no tiene control de las urls que generas en tus scripts php. Esto es algo que debes cuidar de ti mismo.