当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > htaccess Rewrite中文编码问题解决方法

Linux服务器
网管经验:打造网吧Linux代理服务器
Linux下如何使用光驱及读取非linux分区等
Linux主要shell命令详解
Linux下宽带设置使局域网连接互联网实例
网管入门之Linux服务器启动过程详解----通过/etc/inittab文件进行初始化
网管入门之Linux服务器启动过程详解----执行init进程
网管入门之Linux服务器启动过程详解----加载内核
网管入门之Linux服务器启动过程详解----启动GRUB/LILO
网管入门之Linux服务器启动过程详解----从BIOS到内核
如何恢复误删除的Linux文件
在Linux系统下建立强大的FTP搜索引擎
Linux操作系统的Configure参数解释说明
Linux系统下查CPU个数的方法
Linux攻略 DNS服务器安装配置方法详细介绍
Linux操作系统平台Vi指令大全
浅析linux操作系统登录帐户的管理和审计
在Linux上架设支持JSP+PHP的Web服务器
linux操作系统中bsd套接口开发的基础介绍
享受便利的应用方式—linux系统三则超酷技巧
LINUX VMWare-TOOLS的安装

Linux服务器 中的 htaccess Rewrite中文编码问题解决方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-04   浏览: 87 ::
收藏到网摘: n/a

Seo方面对于中文地址或则文件名,在Google好像比重要大一些,今天正好看到andy的文章.转下,以后也许会用. .htaccess文件
RewriteRule ^(.*).html$ index.php?id=$1
对于一个网址http://www.ruanchen.com/��是谁.html 我们将会遇到以下4种情况
http://www.ruanchen.com/��是谁.html (这里的”我是谁”是GB2312编码)
IE打开,接收到的id是utf8编码的”我是谁”
FireFox打开,接收不到id值,并且Apache会出现403错误。
这里需要着重说明一下,因为FireFox会将”我是谁”自动urlencode,如果你的页面链接中”我是谁”的编码是gb2312就会出错。
http://www.ruanchen.com/��是谁.html (这里的”我是谁”是UTF8编码)
IE和FireFox打开,都可以接收到id值
http://www.ruanchen.com/CE%D2%CA%C7%CB%AD.html (这里是urlencode后的”我是谁”GB2312编码)
IE和FireFox打开,都接收不到id值,并且Apache会出现403错误。
http://www.ruanchen.com/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.