Ну, бывает, что ваша проблема более проста, чем ссылка, которую я вам дал, так как вы не хотите никакого анализа содержимого строки запроса.
Если вы используете эту единственную строку:
RewriteRule ^admin index.php?uri=admin&q= [L,QSA]
Где QSA означает добавление строки запроса к результату. Вы получите внутреннее перенаправление на:
index.php?uri=admin&q=&poll/new
Что не в порядке, это потому, что способ использования аргумента (admin?poll/new
) не является стандартным способом. Так что, похоже, нам нужно захватить содержимое строки запроса и поместить его вручную в rewriteRule. Это должно работать (если вам нужно только для / admin URL):
RewriteCond %{REQUEST_FILENAME} admin [NC]
RewriteCond %{QUERY_STRING} (.*) [NC]
RewriteRule .* index.php?uri=admin&q=%1 [L]
Где% 1 - это первое совпадение в круглых скобках в RewriteCond: (.*)
, означающее все в строке запроса, причем строка запроса - это что-нибудь после знака вопроса. Таким образом, фактически это позволяет admin?poll/new
, но также admin?poll/new&foo=toto
, давая index.php?uri=admin&q=poll/new&foo=bar