Перезапись URL и формы GET в Apache/PHP

Я включил перезапись URL на своем PHP-сайте с помощью Apache (http://example.com/index.php?param=12 становится http://example.com/index/param/12).

У меня есть несколько форм, которые находятся в GET вместо POST.

После заполнения формы результирующий URL-адрес не перезаписывается.

Можно ли сохранить переписанные URL-адреса после отправки формы GET?

ОБНОВЛЕНИЕ: я нашел эту статью по теме http://matthewjamestaylor.com/blog/how-to-post-forms-to-clean-rewriting-urls, но мне действительно не нравится идея перенаправления на переписанный URL. Действительно ли нет способа сохранить переписанные URL-адреса без перенаправления?

ОБНОВЛЕНИЕ 2: Вот пример того, что я пытаюсь сделать. Скажем, у меня есть простая форма:

<form method="get" action="">
   <fieldset>
      <input type="text" name="q" />
      <input type="submit" value="Search" />
   </fieldset>
</form>

и предположим, что мой URL-адрес http://example.com/index/param/12

После отправки формы GET URL становится http://example.com/index/param/12?q=my-input-text, а я хотел бы получить переписанный URL, например http://example.com/index/param/12/q/мой-входной-текст


person Enrico Detoma    schedule 27.11.2009    source источник
comment
Простой PoC сделает вашу точку зрения более очевидной.   -  person Flavius    schedule 27.11.2009


Ответы (2)


Похоже, если вы хотите, чтобы ваша форма переходила непосредственно к /q/my-input-text, вы должны использовать JavaScript, чтобы это произошло в форме onSubmit.

person philfreo    schedule 27.11.2009

apache mod_rewrite обрабатывает только входящие URL-адреса (запросы) — он не контролирует URL-адреса, которые вы создаете в своих php-скриптах. Это то, о чем вы должны позаботиться сами.

person user187291    schedule 27.11.2009