百度首页 | 百度空间
 
查看文章
 
[Server]Windows平台上的mod_encoding.dll For Apache 2.2 的编译 2008.1.31
2008-01-31 13:23
       作者:Tank http://hi.baidu.com/uroot   2007.1.31 Tank原创,转载请保留本出处

      前日写篇[Linux]Apache2.2+mod_encoding解决URL中文编码问题-2008.1.8的文章.有网友咨询Apache 运行在Windows Server 2003平台上如何处理。由于mod_encoding没有提供For Apache 2.2 的Windows 版本,Google了一通无现成dll可用,于是试着自己在Windows 平台编译了mod_encoding.dll.将过程贴出分享:
    mod_encoding 使用libiconv,所以,首先需要一个iconv的win32版本。 libiconv 的老家是 http://www.gnu.org/software/libiconv/
我在这里找到一个libiconv的windows版本:
http://www.zlatkovic.com/pub/libxml/
下载释放到某个目录,例如C:\iconv-1.9.2.win32
  
   开发环境:Windows XP, VS 2005,已经安装Apache 2.2.8 类似mod_limitipconn 编译环境

   Vs2005新建立一个dll项目 项目名称mod_encoding
   加入mod_encoding.c 这个文件从打好补丁的linux版本直接拿过来。参考相关文章2.

修改头文件引用方式#include "httpd.h"
   #include "iconv.h"
    作者:Tank http://hi.baidu.com/uroot 原创
   配置 项目属性,附加 include目录 和链接附加依赖项, 可参考相关文章1中配置, 记得需要加入iconv的lib文件,include目录
     这时候编译可以通过。Link出错。由于Linux C index 函数的原因.
    替换index 为win32 的strstr .
    重新编译通过。

   配置文件写法同Linux版本相同.
   需要在部署windows server 2003上system32中加入iconv.dll.如果链接时选择静态链接库iconv_a.lib.则不需要此步骤。其他如MSVCRT80.DLL等,如果需要,一并部署到目标Server.
    (Tank注:因无条件测试,不能保证此dll能正常使用,请自行测试)

相关文章:
1:
Windows 2003 平台 Apache 2.2.6 +mod_limitipconn+ PHP 5 + SQL SERVER 2005 配置 -2007.11.08
2:
[Linux]Apache2.2+mod_encoding解决URL中文编码问题-2008.1.8

类别:internet/software | 添加到搜藏 | 浏览() | 评论 (2)
 
网友评论:
1
2008-03-07 15:56
问个相关问题,我的php程序是将中文文件名进行urlencode编码存入数据库中,使用apache1.3.7版本可以直接用数据库中的编码地址进行访问,但换成了apache2.2版本后就不行了,开启apache目录资源浏览功能看到的资源地址编码和数据库中完全不同,这应该怎么解决?
文件名称:
12048706586549348088友情链接.gif
数据库内的存储编码:
12048706586549348088%D3%D1%C7%E9%C1%B4%BD%D3.gif
apache资源链接地址:
12048706586549348088%e5%8f%8b%e6%83%85%e9%93%be%e6%8e%a5.gif
 
2
2008-03-07 17:57
数据库内的存储编码:
12048706586549348088%D3%D1%C7%E9%C1%B4%BD%D3.gif 这个地址是GBK编码
12048706586549348088%e5%8f%8b%e6%83%85%e9%93%be%e6%8e%a5.gif
UTF8编码

可以在apache2.2中用这个mod_encoding把所有的GBK编码url请求转化为UTF8编码url,就像直接用apache目录流浪功能看到的地址一样就应该可以。
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请输入下图中的四位验证码,字母不区分大小写。
看不清?
 

     

©2008 Baidu