mod_rewrite с вопросительными знаками и амперсандами (с PHP)

У меня есть веб-приложение на базе PHP, на которое я пытаюсь применить mod_rewrite от Apache.

Исходные URL-адреса имеют форму:
http://example.com/index.php?page=home&x=5

И я хотел бы преобразовать их в:
http://example.com/home?x=5

Обратите внимание, что при переписывании имени страницы я также эффективно «перемещаю» вопросительный знак. Когда я пытаюсь это сделать, Apache с радостью выполняет этот перевод:

RewriteRule ^/([az]+)\?(.+)$ /index.php?page=$1&$2 [NC,L] 

Но он $_GET переменные $_GET в PHP. Например, вызов http://example.com/home?x=88 дает только одну переменную $_GET ( page => home ). Где x => 88 идти? Однако, когда я изменяю свое правило, чтобы использовать амперсанд, а не знак вопроса:

 RewriteRule ^/([az]+)&(.+)$ /index.php?page=$1&$2 [NC,L] 

вызов, подобный http://example.com/home&x=88 будет работать так же, как я ожидал бы (т.е. переменные page и x $ _GET устанавливаются соответствующим образом).

Разница минимальна, я знаю, но мне хотелось бы, чтобы мои URL-переменные начинались с вопросительного знака, если это возможно. Я уверен, что это отражает мое непонимание того, как mod_rewrite перенаправляет взаимодействие с PHP, но похоже, что я должен это сделать (так или иначе).

Заранее спасибо!
Ура,
-Крис

Related of "mod_rewrite с вопросительными знаками и амперсандами (с PHP)"

Попробуй это:.

 RewriteCond %{REQUEST_URI} !^/index.php RewriteRule ^/([az]+)(?:$|\?(?:.+)) /index.php?page=$1 [NC,L,B,QSA,NE] 

B избегает обратной ссылки (не обязательно, поскольку она соответствует [az] +, но в случае, если вы хотите продлить ее позже, это может быть полезно).

EDIT: добавлен RewriteCond. EDIT 2: QSA заботится о добавлении амперсанда.