首页 新闻 会员 周边 捐助

关于域名后加点的问题

0
悬赏园豆:100 [已解决问题] 解决于 2012-07-24 21:21

例1:

http://www.baidu.com

http://www.baidu.com.

例2:

http://stackoverflow.com

http://stackoverflow.com.

注:只要是非 IIS Web服务器都可以,IIS6和II7提示不一样,但都是“Bad Request”,分析了一下,带“点”的请求其实就没有到IIS就出错了,在http.sys获取时就会判断URL存在问题。

现在想解决在出错时转向指定404页面,或者提供思路。

问题补充:

目前我所发现只要在iis里托管的网站都有这个问题,包括微软等。www.360buy.com.可以,那是因为它IIS前面有其它web服务器做的负载均衡。

PS:IIS6可以解决这个问题,比如“http://www.hujiang.com./”、“http://www.maiduo.com./”。但是“http://yeshj.com./“...不可以,但又是”http://maiduo.com./“可以,只不过出错了。

Astar的主页 Astar | 高人七级 | 园豆:40805
提问于:2011-12-02 03:41
< >
分享
最佳答案
0
收获园豆:100
dudu | 高人七级 |园豆:29568 | 2011-12-02 13:28

谢谢

Astar | 园豆:40805 (高人七级) | 2011-12-02 13:29
dudu | 园豆:29568 (高人七级) | 2011-12-02 13:30

@Astar: http://kb.cnblogs.com./ 可以访问,用了CDN加速。

dudu | 园豆:29568 (高人七级) | 2011-12-02 13:42

@dudu: CDN去服务器拿的时候应该就没有这个点了。

Astar | 园豆:40805 (高人七级) | 2011-12-02 13:45

@dudu:  http.sys 不知道是否能扩展,之前找了两篇,但没用:

用于 IIS 的 Http.sys 注册表设置 Http.sys 拒绝包含分隔符的请求

Astar | 园豆:40805 (高人七级) | 2011-12-02 13:47

@dudu: 会记录日志的,配置在这里,默认目录”%SystemRoot%\System32\LogFiles“,捕获了一个格式”2011-12-01 18:15:26 192.168.16.24 8528 192.168.4.20 80 HTTP/1.1 GET / 400 - Hostname -“

Astar | 园豆:40805 (高人七级) | 2011-12-02 13:53

@Astar: C:\Windows\System32\LogFiles\HTTPERR\httperr1.log

Astar | 园豆:40805 (高人七级) | 2011-12-02 13:56

@Astar: 嗯, 我也看到这个日志了。

dudu | 园豆:29568 (高人七级) | 2011-12-02 14:18

@Astar: 在注册表中设置AllowRestrictedChars为1,也解决不了问题。

dudu | 园豆:29568 (高人七级) | 2011-12-02 14:19
其他回答(3)
1

可能是在末尾加“.”,Web服务器认为这个地址不正确,还没有书写完全,你如果输入其他的字母,就报不一样的错了。

在想要跳转的语句上写判断,如果出错了就自动跳到404页面去,404页面可以自己定义把。

 

域名解析就是这样的:将主机名www做CName记录指向您的三级域名地址 ,以"."结尾;

          将空主机名做A记录指向您的IP地址

          将空主机名做MX记录指向您的mail地址,以"."结尾

Verms | 园豆:286 (菜鸟二级) | 2011-12-02 09:30

你理解错了,如果IIS7中安装UrlScan,那么UrlScan默认会禁用在Url出现点(.),在UrlScan.ini中设置AllowDotInPath=1即可

支持(0) 反对(0) 上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2011-12-02 09:55

@上不了岸的鱼: 谢谢!

支持(0) 反对(0) Verms | 园豆:286 (菜鸟二级) | 2011-12-02 10:00
0

在web.config配置中加上下面的试试:

<system.webServer>
<httpErrors errorMode="Custom">
<error statusCode="400" subStatusCode="-1" path="_path" responseMode="Redirect"/>
</httpErrors>
</system.webServer>

参考:http://stackoverflow.com/questions/268592/custom-error-page-configured-in-iis-for-code-400-bad-request-is-ignored

artwl | 园豆:16736 (专家六级) | 2011-12-02 09:43

IIS和web.config设置都没有用

支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2011-12-02 10:39
0
上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2011-12-02 09:52

如果我根本没有装“UrlScan”呢,我试试。

支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2011-12-02 10:41

@Astar: 

有没有可能在IIS中把带点的域名重写会正常的域名?

支持(0) 反对(0) 上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2011-12-02 11:34

@上不了岸的鱼: 不可能,IIS都捕获不到这个东西就已经出错了,你可以用"Fiddler"看一下,正常的IIS返回“Server: Microsoft-IIS/7.5”而加点的是“Server: Microsoft-HTTPAPI/2.0”。

支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2011-12-02 12:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册