说是成功了,但其实最终我还是通过PHP来实现的,因为遇到的问题是对方是gzip后的数据,无法直接替换,只能用php先将gzip的内容解压开,替换完后再gzip输出。
头疼。
参考:apache的mod_ext_filter,这个是功能比较强悍的替换模块了
nginx下当然也有更好的。不过因为我的服务器目前用的是apache。而且我习惯了用apache的一些配置,一下子要换到nginx不太习惯。
以后慢慢考虑吧。
---------
如果用PHP做,有些网站的gzip无法用:gzuncompress,gzinflate,gzdecode解压的。
可以用这个函数:http://www.jb51.net/article/15262.htm,原网站没有格式化,所以我格式化了一下:
PHP代码
- function gzdecode2($data) {
- $flags = ord(substr($data, 3, 1));
- $headerlen = 10;
- $extralen = 0;
- $filenamelen = 0;
- if ($flags & 4) {
- $extralen = unpack('v', substr($data, 10, 2));
- $extralen = $extralen[1];
- $headerlen += 2 + $extralen;
- }
- if ($flags & 8) // Filename
- {
- $headerlen = strpos($data, chr(0), $headerlen) + 1;
- }
- if ($flags & 16) // Comment
- {
- $headerlen = strpos($data, chr(0), $headerlen) + 1;
- }
- if ($flags & 2) // CRC at end of file
- {
- $headerlen += 2;
- }
- $unpacked = @gzinflate(substr($data, $headerlen));
- if ($unpacked === FALSE) {
- $unpacked = $data;
- }
- return $unpacked;
- }