Дорогой 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 :)
Используйте это с последним RewriteRule:
RewriteRule .* index.php?page=%1&id=%2&code=%3 [QSA,L]
QSA = Когда заменяющий URI содержит строку запроса, поведение RewriteRule по умолчанию заключается в том, чтобы отменить существующую строку запроса и заменить ее вновь созданной. Использование флага [QSA] приводит к объединению строк запроса.