apache2.2支持URL中文字符

网站环境:
OS: centos6.9 X64
apache: 2.2.15

网站转移到新环境,客户反映新闻的一些图片无法正常显示。查看URL路径发现调用的图片是中文名称。
网上查下,apache支持中文,需要另外的插件支持。mod_encoding.安装mod_encoding需要gcc编译器,要确保系统已经安装了该编译器。

gcc编译器安装
#yum install gcc

1.mod_encoding 下载
mod_encoding_64.tgz文件下载
2.安装mod_encoding
#tar zxfv mod_encoding_64.tgz
#cd mod_encoding_64
#patch -p0 < mod_encoding.c-apache2.2-20060520.patch
#cd lib/ 进入lib目录,安装iconv_hook
#chmod 755 configure
#./configure --prefix=/usr
#make
#make install
#ldconfig
#cd ..
#chmod 755 configure
#./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/include 其中 --with-apxs更换称自己apache的路径
#make
#gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
#cp mod_encoding.so /etc/httpd/modules/ 复制mod_encoding.so 到apache的modules目录
3.编译httpd.conf文件,添加如下代码:

LoadModule encoding_module modules/mod_encoding.so

<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
SetServerEncoding GBK
DefaultClientEncoding UTF-8 GBK GB2312
AddClientEncoding "(Microsoft . DAV $)" UTF-8 GBK GB2312
AddClientEncoding "Microsoft .
DAV" UTF-8 GBK GB2312
AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312
</IfModule>

4.重启apache

原文地址:http://blog.51cto.com/qingwang/2326438

时间: 2024-08-30 05:43:08

apache2.2支持URL中文字符的相关文章

IE浏览器对URL中文字符的编码

在Quality Issue Tracking系统里,有一块RDLC的报表功能,问题主要发生在中文字符的跳转,如下图所示: 我们首先在报表设计器里面打开文本框属性,选择操作的转到URL,可以在里面编写一段的JavaScript的代码,也可以在报表承载页面里添加JavaScript函数(切记此时报表的HyperLinkTarget的属性改为_Self,具体可以查看a标签设置href的js函数与js代码区别). 当我们把鼠标放在上图红色框里时数字,中文字符直接会经过浏览器编码为UTF-8的编码.最后

Tomcat中间件URL中文字符传递问题

1. 问题描述: tomcat中如果URL中需要传递中文参数,需要配置tomcat的service.xml中文传递的编码方式,否则中文传递将出现乱码,导致程序异常. 2. 解决方式: 修改tomcat配置文件: 修改tomcat配置文件service.xml:URIEncoding="UTF-8" <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000

WP8_UTF8 to GB2312转码 (url网址中带中文字符的处理)

直接使用例如:http://www.abc.php?name=中文符 ,客户端调用,在服务端修改后,会出现乱码, 而windows phone 又不能直接支持gb2312, 经过大量分析和验证,发现 凡事 经过"从汉字转换到16进制"后, 即可成功实现转码,代码如下: string text = "中文符"; string url1 = "http://www.abc.php?name="; string url2 = url1 + Utf8To

PHP解决搜索时在URL地址栏输入中文字符搜索结果出现乱码

这 个问题的出现的前提是本站代码采用utf-8格式,php空间当页面停留在搜索页面时,在浏览器的地址栏输入中文的关键字进行搜索时会出现乱码,在网上查找资料说 明,是因为浏览器默认将url中的中文字符编码为gb2312格式,而我的程序中的文件编码是使用的utf-8的格式,所以才会出现这个问题,但是如果是 直接使用表单提交的数据就不会出现这种问题.解决办法如下,需要PHP开启mb_string支持. if (!mb_check_encoding($word, 'utf-8')){ $word = i

android 4.4.3上面,联系人的头像默认显示首字母,但是不支持中文字符,修改支持中文

在android 4.4.3上面,联系人的头像默认显示首字母,但是不支持中文字符,如下图: 如果联系人名字的第一位是英文字符(a-z || A-Z),则默认头像将显示该首字母. 如果支持中文时显示第一个汉字,那就happy了. 那就看看如何通过修改源代码来实现这一小功能吧- 我们还是先了解下联系人头像加载的流程吧- 联系人头像加载这个问题还是很有意思的,在Contacts中使用ContactPhotoManager类(严格来讲是这个类的子类)来实现头像的异步加载. 这个类还使用了LruCache

URL query string中文字符问题

如果URL的query string中包含中文字符,在不做特殊处理的情况下通过 request.getParameter 方法是获取不到正确的信息的,这是由于下面的两个机制造成的 浏览器会自动对URL中的特殊字符进行编码,比如请求 localhost:8080/TestJSp/loginMiddle.jsp?name=测试,真正请求的URL是localhost:8080/TestJSp/loginMiddle.jsp?name=%E6%B5%8B%E8%AF%95,即浏览器自动对中文进行了基于U

配置NGINX支持中文URL 中文文件名或目录404无法访问的解决方法

Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置.不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的.但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的.为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面. 我们把这

python3中文字符编码问题

最近在进行网络爬虫时,被中文的编码问题搞得很头疼,特别是在windows环境下. 1.爬取到的中文网页内容,在解析时出现解析错误 一般情况下,我们都是用urllib中的相关函数,进行web页面的爬取,然后进行相关处理. 但是经常在处理中文web时,对文本内容的处理,经常出现一些编码错误. 为了彻底解决这个问题,一般是先编码再解码,但是还是会儿出现一些问题…… 后来,我的解决办法: 使用requests库,很好地支持非英文字符. import requests response = request

中文字符的编码转换

当网址中含有中文字符时我们无法直接使用,需要把网址的字符串编码后再转为URL. 由于url支持26个英文字母.数字和少数几个特殊字符,因此,对于url中包含非标准url的字符时,就需要对其进行编码. iOS中提供了函数stringByAddingPercentEscapesUsingEncoding对中文和一些特殊字符进行编码,但是stringByAddingPercentEscapesUsingEncoding的功能并不完善,对一些较为特殊的字符无效.而对这些字符则可以使用CFURLCreat