Метод формы GET не работает с mod_rewrite

0

Дорогой Stackoverflowers,

Я прочитал несколько ответов на этом форуме, но никто не работает для меня или они просто не объяснили свой ответ.

У меня есть форма, которая использует GET как метод. Поскольку я использую mod_rewrite, форма больше не работает. Я прочитал что-то об использовании% {QUERYSTRING} в вашем.htacces, но я не мог найти никакой хорошей информации о том, как это сделать. Метод GET работает, если я изменяю "?" на "&". Для меня это логично, потому что я уже использую знак вопроса в своих.htacces.

Может кто-нибудь объяснить мне, как использовать форму с методом GET в сочетании с mod_rewrite?

Благодарю!

Мои.htacces выглядят так:

    Options -Indexes 
<IfModule mod_rewrite.c>
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  ^/([^/]+)/?([^/]*)?/?([^/]*)?/?([^/]*)?/?   [NC]
RewriteRule .*    index.php?page=%1&id=%2&code=%3 [L]
</IfModule>

ОБНОВИТЬ:

URL, который я использовал, был: rechtenkrom.nl/zoek-opdracht?id=&trefwoord=&headId=&categorie=&postcode=&distance=&provincie=&submit=

Когда я сделал var_dump ($ _ GET), он не показывал мне никаких переменных GET после "?". Добавив QSA к моему последнему правилу перезаписи, теперь он видит все переменные GET :)

  • 0
    Вы должны немного разъяснить другие ответы, на которые вы ссылаетесь. Если ответы на другие вопросы кажутся полезными, вы должны предоставить ссылки на них и точно объяснить, что именно относится к тем ответам, которые вам не подходят. Кроме того, у вас есть представитель, чтобы комментировать везде (награжден на 50), так что вы можете оставить комментарии к этим другим ответам с просьбой дать разъяснения.
  • 0
    Что ты вообще пытаешься сделать?
Показать ещё 1 комментарий
Теги:
.htaccess
mod-rewrite

1 ответ

1
Лучший ответ

Используйте это с последним RewriteRule:

RewriteRule .*    index.php?page=%1&id=%2&code=%3 [QSA,L]

QSA = Когда заменяющий URI содержит строку запроса, поведение RewriteRule по умолчанию заключается в том, чтобы отменить существующую строку запроса и заменить ее вновь созданной. Использование флага [QSA] приводит к объединению строк запроса.

  • 1
    Спасибо! Это именно то, что я хотел! Я обновлю свой ответ ссылкой, которую я пытался использовать. Большое спасибо.
  • 0
    Пожалуйста, рад, что это сработало.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню