Как вы делаете .htaccess передаете все параметры GET, не зная, как они названы?

Я работаю над CMS, который включает пользовательские страницы пользователя. У меня есть иерархия с тремя уровнями, и она работает очень хорошо. Он получил .htaccess, который делает URL-адреса более дружелюбными:

RewriteRule ^([A-Za-z0-9]+).html /content.php?page=$1 [L]
RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+).html /content.php?page=$2 [L]
RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+).html /content.php?page=$3 [L]

Этот код работает нормально.

Еще одна особенность, которая у меня есть, заключается в добавлении настраиваемой php-страницы, в случае, если мне нужно добавить что-то более мощное (например, создать контактную форму, получающую адреса электронной почты из базы данных).

Итак, мой вопрос заключается в том, как я могу изменить (или добавить).htaccess, чтобы все параметры GET были переданы на страницу PHP. Например, чтобы использовать пример страницы контакта, если пользователь переходит на http://www.mysite.com/contact.html?name=someuser, я хочу, чтобы .htaccess переписывал его как content.php? Page = contact & name = someuser, но не указывая им, чтобы оно называлось именем name. Я также хотел бы, чтобы он работал с максимально возможным количеством параметров.

Я знаю, что это большой (и, надеюсь, не путающий) запрос, но возможно ли это? Или, по крайней мере, его части? Спасибо!

Ответ 1

добавить QSA к вашим параметрам. поэтому для вашего первого правила это станет

RewriteRule ^([A-Za-z0-9]+).html /content.php?page=$1 [L, QSA]

Ответ 2

Вам нужно будет использовать флаг QSA (добавить строку запроса). Подробную информацию можно найти в документации mod_rewrite.