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']
任何人都可以告诉上述规则中的问题在哪里?
尝试使用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.