求教一个apache问题

发表于:2007-05-25来源:作者:点击数: 标签:
环境: windows 2003+apache2.0 http://202.102.3.123/aaa/电影/十面埋伏.rm(地址系化名) 这个地址可以从浏览器正确识别并且已经可以下载,但无法使用网际快车等工具下载,提示404,找不到该文件.更不可以使用realone来播放. 改成英文地址,如下: http://202.102.

环境:windows2003+apache2.0
http://202.102.3.123/aaa/电影/十面埋伏.rm (地址系化名)
这个地址可以从浏览器正确识别并且已经可以下载,但无法使用网际快车等工具下载,提示404,找不到该文件.更不可以使用realone来播放.
改成英文地址,如下:
http://202.102.3.123/aaa/vod/smmf.rm
后,问题依旧
-----
但是,http://202.102.3.123/aaa/mp3/xxxx.mp3
这个地址却一切正常,可用工具下载,也可在线播放(不过.mp3文件用中文地址时也不行,只能用默认的下载)...郁闷中
附上httpd.conf文件,向大侠们求救.感激涕零..:{

附上小弟的apache2.0.50配置文件,大侠们给瞅瞅
[url=http://xc520.net/httpd.conf.txt]httpd.conf[/url]

 perryhg 回复于:2004-08-13 07:41:03
默认的httpd.conf尽量不要动,除非你要改 Listen端口。
建议使用虚拟主机设置。

[code:1:2996c5709a]NameVirtualHost *:8080
<VirtualHost *:8080>
    ServerAdmin aaa@aa.com
    DocumentRoot "d:/webs"
    ServerName localhost
    ErrorLog logs/default_vhost_err.txt
    CustomLog logs/default_vhost_aclearcase/" target="_blank" >cc.txt common
    Alias /dy/ "g:/"
    Alias /lxj/ "e:/"
</VirtualHost>[/code:1:2996c5709a]
AddDefaultCharset 和 DefaultLanguage 都不要设置,看看会否影响你。是在不行,到 "D:/Program Files/Apache Group/Apache2/logs" 下面看看 default_vhost_err.txt 看看里面到底发生什么错误

 kimli22 回复于:2004-08-13 13:31:18
照你的方法改了目前的配置文件 - 故障依旧  
改回原始配置文件 - 故障依旧
用你的方法改了原始文件 - 故障依旧

55555555555555555555555555

 kimli22 回复于:2004-08-13 13:56:36
我的问题和这个基本相同,他们讨论的很详细.问题就在编码那块,但我不知具体该如何做?请大侠们赐教
http://www.phpx.com/happy/showthread.php?s=cd38da156f566ff0e6bfd24824297c2d&threadid=78157&perpage=15&pagenumber=1

 kimli22 回复于:2004-08-13 14:12:49
网际快车的信息
英文地址(可以下载):
[code:1:cfa66a76a2]Fri Aug 13 14:08:52 2004 正在连接 202.102.48.62 [IP=202.102.48.62:8080]
Fri Aug 13 14:08:52 2004 已连接.
Fri Aug 13 14:08:52 2004 GET /dy/01.rmvb HTTP/1.1
Fri Aug 13 14:08:52 2004 Host: 202.102.48.62:8080
Fri Aug 13 14:08:52 2004 Accept: */*
Fri Aug 13 14:08:52 2004 Referer: http://202.102.48.62:8080/dy
Fri Aug 13 14:08:52 2004 User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
Fri Aug 13 14:08:52 2004 Pragma: no-cache
Fri Aug 13 14:08:52 2004 Cache-Control: no-cache
Fri Aug 13 14:08:52 2004 Connection: close
Fri Aug 13 14:08:52 2004 HTTP/1.1 200 OK
Fri Aug 13 14:08:52 2004 Date: Fri, 13 Aug 2004 06:07:57 GMT
Fri Aug 13 14:08:52 2004 Server: Apache/2.0.50 (Win32)
Fri Aug 13 14:08:52 2004 Last-Modified: Tue, 27 Jul 2004 14:42:26 GMT
Fri Aug 13 14:08:52 2004 ETag: "885-c7f9255-1c3b160c"
Fri Aug 13 14:08:52 2004 Accept-Ranges: bytes
Fri Aug 13 14:08:52 2004 Content-Length: 209687125
Fri Aug 13 14:08:52 2004 Connection: close
Fri Aug 13 14:08:52 2004 Content-Type: application/vnd.rn-realmedia
Fri Aug 13 14:08:52 2004 Content-Language: zh-CN
Fri Aug 13 14:08:52 2004 开始接受数据![/code:1:cfa66a76a2]

中文地址的出错信息:
[code:1:cfa66a76a2]Fri Aug 13 14:13:47 2004 正在连接 202.102.48.62 [IP=202.102.48.62:8080]
Fri Aug 13 14:13:47 2004 已连接.
Fri Aug 13 14:13:47 2004 GET /dy/电影/0517_韩国2424_大智和尚上传/韩国2424.rm HTTP/1.1
Fri Aug 13 14:13:47 2004 Host: 202.102.48.62:8080
Fri Aug 13 14:13:47 2004 Accept: */*
Fri Aug 13 14:13:47 2004 Referer: http://202.102.48.62:8080/dy/电影/0517_韩国2424_大智和尚上传
Fri Aug 13 14:13:47 2004 User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
Fri Aug 13 14:13:47 2004 Pragma: no-cache
Fri Aug 13 14:13:47 2004 Cache-Control: no-cache
Fri Aug 13 14:13:47 2004 Connection: close
Fri Aug 13 14:13:47 2004 HTTP/1.1 404 Not Found
Fri Aug 13 14:13:47 2004 Date: Fri, 13 Aug 2004 06:12:51 GMT
Fri Aug 13 14:13:47 2004 Server: Apache/2.0.50 (Win32)
Fri Aug 13 14:13:47 2004 Content-Length: 326
Fri Aug 13 14:13:47 2004 Connection: close
Fri Aug 13 14:13:47 2004 Content-Type: text/html; charset=iso-8859-1
Fri Aug 13 14:13:47 2004 有错误发生![/code:1:cfa66a76a2]

 kimli22 回复于:2004-08-13 14:16:54
问题明了了,就是英文地址正常,中文地址只有浏览器可以识别(可以另存为),下载工具和播放器都不能识别,大侠们救救小弟!

 perryhg 回复于:2004-08-14 06:44:04
正确的部分
Fri Aug 13 14:08:52 2004 Content-Type: application/vnd.rn-realmedia 
Fri Aug 13 14:08:52 2004 Content-Language: zh-CN 

出错的部分
Fri Aug 13 14:13:47 2004 Content-Type: text/html; charset=iso-8859-1 
Fri Aug 13 14:13:47 2004 有错误发生!

好像是和字符集设置有关

AddDefaultCharset Off
DefaultLanguage 不要设置

 wingger 回复于:2004-08-14 07:14:03
乱码问题: 

(1)服务器端: 
修改httpd.conf (在Redhat中放置的位置为/etc/httpd/conf/) 
查找: 
AddDefaultCharset ISO-8859-1 
改成: 
代码: 
#AddDefaultCharset ISO-8859-1 

AddDefaultCharset off  


这种方式关掉了服务器的默认语言的发送,这样仅凭html文件头中设置的语言来决定网页语言。 

很多文章都说通过修改为 AddDefaultCharset GB2312 把缺省语言改成GB2312来解决中文乱码,确实GB2312内码的网页可以正常显示了,但这并非万全之策。因为当你的网页内码不是GB2312,就算你在网页用下面的meta指定了正确的语言,如ISO8859-1,也不会解码为ISO8859-1,因为Apache已经先你一步将GB2312指定为网页的语言了, 


(2)养成良好的习惯,在每个网页的<head></head>的最前面加入这行: 

    代码: 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  


  一般的中文版网页编辑工具(例如FrontPage、Dreamweaver等)都会自动加上这行。 

3、如何解决中文文件名无法访问 

 代码: 
 在ie中选择 工具 -> internet选项 -> 高级 -> 取消“总是以UTF-8发送URL”。

 kimli22 回复于:2004-08-14 13:39:26
按照上面两位大侠的解答,小弟重新设置了字符集,问题依旧。
现在情况就是:下载工具和播放器只能识别unicode,比如
http://202.102.48.62:8080/dy/%e4%ba%8b%e5%ae%9e.rm
把上面的地址复制到下载工具或REALONE一切正常。
此地址原名:
http://202.102.48.62:8080/dy/事实.rm

 kimli22 回复于:2004-08-14 22:33:18
%e4%ba%8b%e5%ae%9e
这一串是什么格式的字符?是不是unicode?

 liuzh28 回复于:2004-08-15 13:33:06
apache 1.3.27 所有文件名都用英文,我的可以.

 kimli22 回复于:2004-08-15 16:17:40
。。。我要解答啊!大侠们,你们都哪里去了???555555

 perryhg 回复于:2004-08-15 18:35:16
[code:1:ff40fb7d5c]按照上面两位大侠的解答,小弟重新设置了字符集,问题依旧。 
现在情况就是:下载工具和播放器只能识别unicode,比如 
http://202.102.48.62:8080/dy/%e4%ba%8b%e5%ae%9e.rm 
把上面的地址复制到下载工具或REALONE一切正常。 
此地址原名: 
http://202.102.48.62:8080/dy/事实.rm[/code:1:ff40fb7d5c]

既然下载工具和realone都正常了,你还有什么问题?
在浏览器的“工具”->选项->高级 里面,选择“总是以UTF-8发送URL”问题即可解决,flashget应该会自动转换的。

 kimli22 回复于:2004-08-15 20:57:56
不好意思,楼上兄台误解了。
这种地址:http://202.102.48.62:8080/dy/%e4%ba%8b%e5%ae%9e.rm可以正常访问。
但实际上我们的地址是这种:http://202.102.48.62:8080/dy/事实.rm

如果想用下载工具和播放器访问"事实.rm"这个文件,就必须要先把它转化成“%e4%ba%8b%e5%ae%9e.rm”现在的问题就是如何转换这两种字符串了。

 kimli22 回复于:2004-08-15 21:10:07
唉,讨论这么多天,竟然发现自己的问题是现在网上普遍存在的。URL中提交中文参数就会出错。。需要找一段编码转换公式。

 bdw 回复于:2004-08-16 00:30:09
<?php
$str="url";
$str=urlencode($str);
echo $str;
?>

 kimli22 回复于:2004-08-17 23:08:26
多谢楼上!
不知道可不可以在APACHE中设置支持?

 kimli22 回复于:2004-08-18 20:57:08
楼上二层兄台给的方法偶早试过了,得出的代码不一样...
原文:      事实.rm
得出的是:%CA%C2%CA%B5.rm
应该是:   %e4%ba%8b%e5%ae%9e.rm

 kimli22 回复于:2004-08-19 14:25:51
多谢各位帮忙,小弟已解决此问题,代码如下。有相同问题解决不了的朋友可以问问我,也许我能给点建议
<?
$inString=$_GET["aaaa"];
$inString=urlencode(iconv( 'gb2312', 'utf-8', $inString ));
$inString=str_replace("%3A",":",$inString);
$inString=str_replace("%2F","/",$inString);
echo $inString;
?>

 Redian 回复于:2004-09-23 11:35:52
[quote:7f47b28432="kimli22"]
$inString=urlencode(iconv( 'gb2312', 'utf-8', $inString ));
$inString=str_replace("%3A",":",$inString);
$inString=str_replace("%2F","/",$inString);
echo $inString;
?>[/quote:7f47b28432]

这段是什么意思啊,我也遇到同样的问题了,请介绍具体的设置。

原文转自:http://www.ltesting.net