Я работаю над 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, но не указывая им, чтобы он искал имя «имя» в качестве имени параметра. Я также хотел бы, чтобы он работал с максимально возможным количеством параметров.
Я знаю, что это большой (и, надеюсь, не путающий) запрос, но возможно ли это? Или, по крайней мере, его части? Благодаря!
добавьте QSA к вашим параметрам. поэтому для вашего первого правила это станет
RewriteRule ^([A-Za-z0-9]+).html /content.php?page=$1 [L, QSA]
Вам нужно будет использовать флаг QSA (добавить строку запроса). Документация mod_rewrite имеет более подробную информацию.