Перезапись URL и GET формы в Apache / PHP - PullRequest
1 голос
/ 27 ноября 2009

Я включил перезапись 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-rewritten-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/my-input-text

Ответы [ 2 ]

4 голосов
/ 27 ноября 2009

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

0 голосов
/ 27 ноября 2009

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

...