如何处理.htaccess规则中的特殊字符?

Pra*_*ant 1 apache url .htaccess url-rewriting

在我的.htaccess文件中,我定义了以下规则,

RewriteRule t/([^.]+)/$ /videos/tag.php?tag=$1 [QSA]
Run Code Online (Sandbox Code Playgroud)

如果我正在浏览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']

任何人都可以告诉上述规则中的问题在哪里?

Gum*_*mbo 5

尝试使用B标志来逃避反向引用:

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

编辑    怎么样:

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

第一条规则是替换&with %26.