2011-10-22 4 views
0

Im пытается переписать www.mysite.com/admin/index.php?page=pagename в www.mysite.com/admin/pagenameMod Rewrite для этого условия

В моей .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 использует знак # или что-то, или помещает/впоследствии. Как мне это сделать?

ответ

2

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

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

Новая линия:.

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

Спасибо за помощь, но не имеет значения. :( – alecwhardy