小知识:htaccess Rewrite中文编码问题解决方法

.htaccess文件

RewriteRule ^(.*).html$ index.php?id=$1

对于一个网址http://www.tuohang.net/我是谁.html 我们将会遇到以下4种情况

http://www.tuohang.net/我是谁.html (这里的”我是谁”是GB2312编码)

IE打开,接收到的id是utf8编码的”我是谁”

FireFox打开,接收不到id值,并且Apache会出现403错误。

这里需要着重说明一下,因为FireFox会将”我是谁”自动urlencode,如果你的页面链接中”我是谁”的编码是gb2312就会出错。

http://www.tuohang.net/我是谁.html (这里的”我是谁”是UTF8编码)

IE和FireFox打开,都可以接收到id值

http://www.tuohang.net/%CE%D2%CA%C7%CB%AD.html (这里是urlencode后的”我是谁”GB2312编码)

IE和FireFox打开,都接收不到id值,并且Apache会出现403错误。

http://www.tuohang.net/%E6%88%91%E6%98%AF%E8%B0%81.html (这里是urlencode后的”我是谁”UTF8编码)

IE和FireFox打开,都可以接收到id值

说明:

“我是谁”的UTF8编码urlencode后为 %E6%88%91%E6%98%AF%E8%B0%81

“我是谁”的GB2312编码urlencode后为 %CE%D2%CA%C7%CB%AD

结论:

Rewrite只接收UTF8

IE和FireFox对中文URL的编码不同,要注意.

这也是为什么上面的例子接收不到id值,并且出403错误.

为了避免这种情况出现,页面中的链接最好是UTF8编码的,如果是GB2312,一定会有问题.

最好的习惯是UTF8编码并urlencode,也就是上文的例4.
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:对象存储是什么?有没有必要购买对象存储?

2023-4-23 11:29:52

建站知识

小知识:eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池

2023-4-23 11:44:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索