Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top