Как обрабатывать специальные символы в правилах .htaccess? - PullRequest
1 голос
/ 14 июля 2009

В моем файле .htaccess я определил следующее правило,

RewriteRule t/([^.]+)/$ /videos/tag.php?tag=$1 [QSA]

Приведенное выше правило работает нормально, если я просматриваю http://example.com/videos/t/world+news/ или http://example.com/videos/t/events/

но когда я просматриваю http://example.com/videos/t/business+%26+world/ (здесь оригинальный тег: business & world), тогда в строке запроса tag я получаю только данные о бизнесе «& world» не приходит, когда я выбираю переменные данные через $_GET['tag']

Может кто-нибудь подсказать, в чем проблема в вышеприведенном правиле ??

1 Ответ

5 голосов
/ 14 июля 2009

Попробуйте флаг B , чтобы избежать обратной ссылки:

RewriteRule ^t/([^.]+)/$ /videos/tag.php?tag=$1 [B,QSA]

Редактировать Как насчет этого:

RewriteRule ^([^&]*)&(.*)/$ $1\%26$2 [N,NE]
RewriteRule ^t/([^.]+)/$ /videos/tag.php?tag=$1 [QSA]

Первое правило - заменить & на %26.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...