2009-07-14 69 views
1

在我定义我的.htaccess文件下面的规则,如何处理.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/(这里原来的标签是:业务&世界)然后在我的查询字符串tag变量我只获得业务。 '& world'is not coming当我通过提取可变数据时$_GET['tag']

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

回答

5

尝试B flag逃脱后向引用:

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

编辑如何:

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

的第一条规则是%26更换&

+0

它不工作。当我添加[B,QSA]时,它会给我提供“500内部服务器错误”,只有没有B [QSA]工作正常。 ?? – Prashant 2009-07-14 10:52:48