Reescrita de URL e obter formulários em Apache / PHP
-
05-07-2019 - |
Pergunta
Eu habilitado reescrita de URL no meu site PHP com Apache ( http://example.com/ index.php? param = 12 se torna http://example.com/index/param/ 12 ).
Eu tenho algumas formas que estão em GET em vez de POST.
Depois de subitting a forma, o URL resultante não é reescrito.
É possibile para manter URLs reescritos depois de enviar um formulário GET?
UPDATE: Eu encontrei este artigo sobre o tema http://matthewjamestaylor.com/blog/how-to-post-forms-to-clean-rewritten-urls mas eu realmente não gosto da idéia de redirecionar a reescrita URL. Não há realmente nenhuma maneira de manter URLs reescritos sem redirecionando?
UPDATE 2: Aqui está um exemplo do que estou tentando fazer. Digamos que eu tenho um formulário simples como isto:
<form method="get" action="">
<fieldset>
<input type="text" name="q" />
<input type="submit" value="Search" />
</fieldset>
</form>
E digamos que a minha url é http://example.com/index/param/12
Depois de enviar o formulário GET, o url se torna http: // example.com/index/param/12?q=my-input-text , enquanto eu gostaria de ter uma url reescrito como http://example.com/index/param/12/q/my-input-text
Solução
Parece que se você quer que seu formulário para ir diretamente para /q/my-input-text
você deve usar JavaScript para fazer isso acontecer em onSubmit
do formulário.
Outras dicas
apache mod_rewrite apenas processa (pedido) URLs de entrada - não tem controle dos urls que você gerar em seus scripts PHP. Este é algo que você deve cuidar de si mesmo.