#.htaccess #mod-rewrite
#.htaccess #мод-переписать
Вопрос:
Я пытаюсь переписать 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/mypageamp;querystring=value
вместо этого. Первый ? должен быть знак amp; из-за перезаписи мода.
Как я могу создать правило перезаписи, которое устранит эту проблему? Поэтому я хочу
www.mysite.com/admin/mypage/?additional_query=value
чтобы переписать в
www.mysite.com/admin/index.php?page=mypageamp;aditional_query=value
Я думаю, Google использует знак # или что-то в этом роде, или ставит / после этого. Как мне это сделать?
Ответ №1:
У Apache уже есть аккуратный маленький модификатор, который вы можете добавить в конец вашего RewriteRule . Если вы просто измените свой флаг ( [L]
) в конце своего правила [QSA,L]
, он добавит строку вашего запроса в конец URL-адреса, вместо того, чтобы пытаться переписать страницу, все еще включив ее (при условии, что строка запроса начинается с ?
, как и ожидалось.
Я не уверен, но я считаю, что вам $
также нужно удалить символ.
Новая строка:
RewriteRule ^([^/.] )/? index.php?page=$1 [QSA,L]
Комментарии:
1. Спасибо за помощь, но это ничего не изменило. 🙁