переменная htaccss и urlencoded - PullRequest
0 голосов
/ 27 января 2012

Вот пример URL, который передается, когда я нажимаю кнопку на сайте.

http://www.site.com/account/messages/compose/316/&sbj=Web+Programmer+%2F+Developer&event=836

Это то, что у меня есть для правила перезаписи:

RewriteRule ^account/messages/compose/([0-9]+)/(.*)/([0-9]+)/?$ index.php?m=account_messages&p=compose&id=$1&sbj=$2&event=$3 [L]

id и событие всегда являются числами, но subj может быть строкой в ​​кодировке URL, поскольку сейчас она не работает

1 Ответ

0 голосов
/ 27 января 2012

В вашем URL отсутствует ?, т. Е. Должно быть http://www.site.com/account/messages/compose/316/?sbj=Web+Programmer+%2F+Developer&event=836

Добавьте следующее в файл .htaccess в корневом каталоге вашего сайта.

Так как sbj и event уже есть в строке запроса, флаг QSA автоматически пропустит их через, то есть перезапишет

http://www.site.com/account/messages/compose/316/?sbj=Web+Programmer+%2F+Developer&event=836

эквивалент

http://www.site.com/index.php?m=account_messages&p=compose&id=316&sbj=Web+Programmer+%2‌​F+Developer&event=836

RewriteEngine on
RewriteBase /

RewriteRule ^account/messages/compose/([0-9]+)/$ index.php?m=account_messages&p=compose&id=$1 [L,QSA,NC]
...