Перезапись URL и GET формы в Apache / PHP
-
05-07-2019 - |
Вопрос
Я включил перезапись 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-скриптах. Это то, что вы должны заботиться о себе.