htaccess Rewrite中文编码问题解决方法
更新时间:2008年10月03日 20:30:34 作者:
Seo方面对于中文地址或则文件名,在Google好像比重要大一些,今天正好看到andy的文章.转下,以后也许会用.
.htaccess文件
RewriteRule ^(.*).html$ index.php?id=$1
对于一个网址https://www.jb51.net/我是谁.html 我们将会遇到以下4种情况
https://www.jb51.net/我是谁.html (这里的”我是谁”是GB2312编码)
IE打开,接收到的id是utf8编码的”我是谁”
FireFox打开,接收不到id值,并且Apache会出现403错误。
这里需要着重说明一下,因为FireFox会将”我是谁”自动urlencode,如果你的页面链接中”我是谁”的编码是gb2312就会出错。
https://www.jb51.net/我是谁.html (这里的”我是谁”是UTF8编码)
IE和FireFox打开,都可以接收到id值
https://www.jb51.net/%CE%D2%CA%C7%CB%AD.html (这里是urlencode后的”我是谁”GB2312编码)
IE和FireFox打开,都接收不到id值,并且Apache会出现403错误。
https://www.jb51.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.
RewriteRule ^(.*).html$ index.php?id=$1
对于一个网址https://www.jb51.net/我是谁.html 我们将会遇到以下4种情况
https://www.jb51.net/我是谁.html (这里的”我是谁”是GB2312编码)
IE打开,接收到的id是utf8编码的”我是谁”
FireFox打开,接收不到id值,并且Apache会出现403错误。
这里需要着重说明一下,因为FireFox会将”我是谁”自动urlencode,如果你的页面链接中”我是谁”的编码是gb2312就会出错。
https://www.jb51.net/我是谁.html (这里的”我是谁”是UTF8编码)
IE和FireFox打开,都可以接收到id值
https://www.jb51.net/%CE%D2%CA%C7%CB%AD.html (这里是urlencode后的”我是谁”GB2312编码)
IE和FireFox打开,都接收不到id值,并且Apache会出现403错误。
https://www.jb51.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.
相关文章
linux守护进程服务daemon、nohup、systemd的区别
守护进程(Daemon)是指在后台运行的进程,不与用户直接交互,且在系统启动时自动运行,nohup是一个命令行实用程序,用于在用户注销后继续运行命令,Systemd用于管理和启动服务,支持复杂的依赖管理和自动启动2025-03-03
如何关闭http Methods中的Trace 提高安全意识
在配置文件http.conf 添加 TraceEnable off 即可关闭2013-02-02
centOS6中使用crontab定时运行执行jar程序的脚本
这篇文章主要介绍了centOS6中使用crontab定时运行执行jar程序的脚本,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-11-11


最新评论