Мод переписать для этого условия - PullRequest
0 голосов
/ 22 октября 2011

Я пытаюсь переписать www.mysite.com / admin / index.php? Page = pagename до www.mysite.com / admin / pagename

В моем файле .htaccess (расположенном по адресу www.mysite.com/admin) есть следующие строки кода

RewriteEngine on
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L]

Однако, когда я пытаюсь получить доступ к

www.mysite.com/admin/mypage?querystring=value 

, я долженвместо этого введите

 www.mysite.com/admin/mypage&querystring=value

.Первый ?должен быть знаком & из-за переписывания мода.

Как создать правило перезаписи, которое решит эту проблему.Поэтому я хочу, чтобы

www.mysite.com/admin/mypage/?additional_query=value

переписать в

www.mysite.com/admin/index.php?page=mypage&aditional_query=value

Я думаю, что Google использует знак # или что-то еще, или ставит / после.Как мне это сделать?

1 Ответ

2 голосов
/ 22 октября 2011

В Apache уже есть аккуратный маленький модификатор, который вы можете добавить в конец вашего RewriteRule.Если вы просто измените свой флаг ([L]) в конце вашего правила на [QSA,L], он добавит строку запроса в конец URL-адреса, вместо того, чтобы пытаться переписать страницу, если она еще включена (еслиСтрока запроса начинается с ?, как и ожидалось.

Я не уверен, но я считаю, что вам также необходимо удалить символ $.

Новая строка:

RewriteRule ^([^/\.]+)/? index.php?page=$1 [QSA,L]
...