当前位置: 操作系统/服务器>linux
本页文章导读:
▪让服务器支持中文文件名下载的设置方法
这个问题讨论过很多次了,确实是ms的大bug,出现在远东语言版的iis上。除了骂鳖儿该死之外,你有五个选择: 1. 换用其他的web server,比如apache。 [强烈推荐本方法] 2. 不使.........
▪Windows下的PHP开启DomXML
Windows下的PHP开启DomXML DomXMl需要iconv的支持,所以,开启DomXML需要将PHP目录下的Dlls/iconv.dll拷到windows目录,再在php.ini里面打开 extension=php_domxml.dll 此外,开启PHP的iconv,也是同样道理,需要先.........
▪Apache的Rewrite心得
Apache的Rewrite心得 最近公司要转移服务器,服务器上有几十个站点正在运行,希望转移的期间,服务不受影响,所以用Apache的mod_rewrite做了些处理. 大致环境是这样的,服务器有site[1-50].TA.com.........
[1]让服务器支持中文文件名下载的设置方法
来源: 互联网 发布时间: 2013-12-24
这个问题讨论过很多次了,确实是ms的大bug,出现在远东语言版的iis上。除了骂鳖儿该死之外,你有五个选择:
1. 换用其他的web server,比如apache。 [强烈推荐本方法]
2. 不使用中文做文件名,可以用拼音来替代。 [推荐]
3. 使用中英文混合文件名(据称能回避bug,但未经完全测试,不能保证所有情况下都能正确访问) [不推荐]
4. 等ms出补丁 [没希望了,不知道多久了,也没看到补丁]
5. 强制所有的用户都仅使用直接以本地中文编码发送url的浏览器 [你等着被用户抱怨吧]
其实解决方法很简单:
修改注册表
local machine-> system->currentControlset->services->inetinfo->
paramters->favordbcs 由1改为0,重启iis即可
local machine-> system->currentControlset->services->inetinfo->
paramters->favordbcs 由1改为0
之所以能奏效,据我分析在于:
远东版的iis由于本地化的win2k采用的都是本地编码比如gbk或者shift-jis或者big5之类,这些编码都是双字节混合编码。
favordbcs的名字估计就是 “双字节编码习惯”。ms可能针对双字节编码作了智能判断的算法,或者是获得了较高的辨认优先级。
可惜ms可能有一些bug估计造成某些utf-8的编码和本地双字节编码产生冲突,距某些人说是会丢弃一个字节。
本来我准备做个完全的测试,不过现在既然有了这个workaround,就不必麻烦了。
问题在于,此方法肯定只是workaround,而且微软肯定早就知道,居然不公布,在ms网站上也搜索不到!
============
'转换双字节字符为合法的URL传输字串
function getUrlEncodel(byVal Url)
Dim i,code
getUrlEncodel=""
if trim(Url)="" then exit function
for i=1 to len(Url)
code=Asc(mid(Url,i,1))
If code<0 Then code = code + 65536
If code>255 Then
getUrlEncodel=getUrlEncodel&"%"&Left(Hex(Code),2)&"%"&Right(Hex(Code),2)
else
getUrlEncodel=getUrlEncodel&mid(Url,i,1)
end if
next
end function
测试通过。
1. 换用其他的web server,比如apache。 [强烈推荐本方法]
2. 不使用中文做文件名,可以用拼音来替代。 [推荐]
3. 使用中英文混合文件名(据称能回避bug,但未经完全测试,不能保证所有情况下都能正确访问) [不推荐]
4. 等ms出补丁 [没希望了,不知道多久了,也没看到补丁]
5. 强制所有的用户都仅使用直接以本地中文编码发送url的浏览器 [你等着被用户抱怨吧]
其实解决方法很简单:
修改注册表
local machine-> system->currentControlset->services->inetinfo->
paramters->favordbcs 由1改为0,重启iis即可
local machine-> system->currentControlset->services->inetinfo->
paramters->favordbcs 由1改为0
之所以能奏效,据我分析在于:
远东版的iis由于本地化的win2k采用的都是本地编码比如gbk或者shift-jis或者big5之类,这些编码都是双字节混合编码。
favordbcs的名字估计就是 “双字节编码习惯”。ms可能针对双字节编码作了智能判断的算法,或者是获得了较高的辨认优先级。
可惜ms可能有一些bug估计造成某些utf-8的编码和本地双字节编码产生冲突,距某些人说是会丢弃一个字节。
本来我准备做个完全的测试,不过现在既然有了这个workaround,就不必麻烦了。
问题在于,此方法肯定只是workaround,而且微软肯定早就知道,居然不公布,在ms网站上也搜索不到!
============
'转换双字节字符为合法的URL传输字串
代码如下:
function getUrlEncodel(byVal Url)
Dim i,code
getUrlEncodel=""
if trim(Url)="" then exit function
for i=1 to len(Url)
code=Asc(mid(Url,i,1))
If code<0 Then code = code + 65536
If code>255 Then
getUrlEncodel=getUrlEncodel&"%"&Left(Hex(Code),2)&"%"&Right(Hex(Code),2)
else
getUrlEncodel=getUrlEncodel&mid(Url,i,1)
end if
next
end function
测试通过。
[2]Windows下的PHP开启DomXML
来源: 互联网 发布时间: 2013-12-24
Windows下的PHP开启DomXML
DomXMl需要iconv的支持,所以,开启DomXML需要将PHP目录下的Dlls/iconv.dll拷到windows目录,再在php.ini里面打开
extension=php_domxml.dll
此外,开启PHP的iconv,也是同样道理,需要先将iconv.dll拷到windows目录.
DomXMl需要iconv的支持,所以,开启DomXML需要将PHP目录下的Dlls/iconv.dll拷到windows目录,再在php.ini里面打开
extension=php_domxml.dll
此外,开启PHP的iconv,也是同样道理,需要先将iconv.dll拷到windows目录.
[3]Apache的Rewrite心得
来源: 互联网 发布时间: 2013-12-24
Apache的Rewrite心得
最近公司要转移服务器,服务器上有几十个站点正在运行,希望转移的期间,服务不受影响,所以用Apache的mod_rewrite做了些处理.
大致环境是这样的,服务器有site[1-50].TA.com域名和site[1-50].TB.com域名,在开始转移服务器之前,先将site[1-50].TB.com指向新的服务器IP,同时,在新的IP上,运行Apache,将siteX.TB.com的访问Rewrite回TA.com,经过一天后,再将TB.com解析到新IP,同时,转移数据库和WEB服务到新IP,并将原来的服务器上的Apache Rewrite到SiteX.TB.com,访止部分用户缓存了DNS,导致仍然访问原服务器。
Rewrite写法大致如下:
如果Apache配置了虚拟主机的话,这个配置应写入默认虚拟主机的配置。
最近公司要转移服务器,服务器上有几十个站点正在运行,希望转移的期间,服务不受影响,所以用Apache的mod_rewrite做了些处理.
大致环境是这样的,服务器有site[1-50].TA.com域名和site[1-50].TB.com域名,在开始转移服务器之前,先将site[1-50].TB.com指向新的服务器IP,同时,在新的IP上,运行Apache,将siteX.TB.com的访问Rewrite回TA.com,经过一天后,再将TB.com解析到新IP,同时,转移数据库和WEB服务到新IP,并将原来的服务器上的Apache Rewrite到SiteX.TB.com,访止部分用户缓存了DNS,导致仍然访问原服务器。
Rewrite写法大致如下:
代码如下:
#加载mod_rewrite
LoadModule rewrite_module modules/mod_rewrite.so
#打开mod_rewrite
RewriteEngine On
#开启Log(用于调试)
RewriteLog "logs/rewrite.log"
RewriteLogLevel 9
#只将siteX,demo,support开头的域名做Rewrite
RewriteCond %{SERVER_NAME} ^(site|demo|support) [NC]
#在URI前面加上主机名
RewriteRule ^(.+) %{SERVER_NAME}$1 [C]
#将这台服务器的所有xxx.TA.com/*转到xxx.TB.com/*
RewriteRule ^([a-z0-9]+)\.([0-9a-z\.]+)/(.*) http://$1\.TB\.com/$3 [NC,R,L]
LoadModule rewrite_module modules/mod_rewrite.so
#打开mod_rewrite
RewriteEngine On
#开启Log(用于调试)
RewriteLog "logs/rewrite.log"
RewriteLogLevel 9
#只将siteX,demo,support开头的域名做Rewrite
RewriteCond %{SERVER_NAME} ^(site|demo|support) [NC]
#在URI前面加上主机名
RewriteRule ^(.+) %{SERVER_NAME}$1 [C]
#将这台服务器的所有xxx.TA.com/*转到xxx.TB.com/*
RewriteRule ^([a-z0-9]+)\.([0-9a-z\.]+)/(.*) http://$1\.TB\.com/$3 [NC,R,L]
如果Apache配置了虚拟主机的话,这个配置应写入默认虚拟主机的配置。
最新技术文章: