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.

相关文章

  • centos7系统下搭建docker本地镜像仓库的方法

    centos7系统下搭建docker本地镜像仓库的方法

    本篇文章主要介绍了CentOS 7 : Docker私有仓库搭建和使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • Linux内核参数调整方法

    Linux内核参数调整方法

    由于Linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。但是,当系统重新启动后,原来设置的参数值就会丢失,而系统每次启动时都会自动去/etc/sysctl.conf文件中读取内核参数,因此将内核的参数配置写入这个文件中,是一个比较好的选择。
    2017-11-11
  • 详解如何在 CentOS 7 中安装或升级最新的内核

    详解如何在 CentOS 7 中安装或升级最新的内核

    这篇文章主要介绍了详解如何在 CentOS 7 中安装或升级最新的内核,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • Centos6.5全自动安装 vsftpd+dhcp+nfs+tftp

    Centos6.5全自动安装 vsftpd+dhcp+nfs+tftp

    本文主要记述了在Centos6.5中,如何配置无人值守安装vsftpd+dhcp+nfs+tftp,非常实用,希望对大家能有所帮助。
    2014-09-09
  • Apache Calcite 实现方言转换的代码

    Apache Calcite 实现方言转换的代码

    这篇文章主要介绍了Apache Calcite 实现方言转换的代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • 详解Linux中搭建常用服务器

    详解Linux中搭建常用服务器

    本篇文章主要介绍了Linux中搭建常用服务器,主要包括telnet、DHCP、DNS、sendmail、FTP、web、samba有兴趣的可以了解一下。
    2016-12-12
  • Mac本地文件上传到CentOS云服务器方法

    Mac本地文件上传到CentOS云服务器方法

    Mac本地文件上传到CentOS中,可以使用scp指令可以完成。这篇文章给大家介绍了Mac本地文件上传到CentOS云服务器方法,需要的朋友跟随脚本之家小编一起看看吧
    2018-06-06
  • Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项(tomcat8为例)

    Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项(tomcat8为例

    本文以tomcat8为例给大家介绍Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项,非常不错,需要的朋友参考下
    2019-10-10
  • 正确配置与维护Apache安全性设置方法

    正确配置与维护Apache安全性设置方法

    Apache Server是一个非常优秀,非常棒的服务器,只要你正确配置和维护好Apache服务器,你就会感受到Apache Server 所带来的好处,同样希望你能够通过阅读本文达到理论和实践双丰收的目的。
    2010-12-12
  • apache tika检测文件是否损坏的方法

    apache tika检测文件是否损坏的方法

    Apache Tika用于文件类型检测和从各种格式的文件内容提取的库。这篇文章主要介绍了apache tika检测文件是否损坏,需要的朋友可以参考下
    2019-09-09

最新评论