今天发现一个关于.net 页面路径相当头痛的问题,这个问题几乎存在于我过往开发所有.net站点中..问题如下...
正常情况下的页面地址应该是这样http://www.xxx.com/default.aspx但现在发现一个问题这样的地址也能正常访问http://www.xxx.com/default.aspx/default.aspx
http://www.xxx.com/default.aspx/default.aspx/default.aspx/default.aspx路径还可以这样一直无限重复. 无论多少级都可以正常访问..
这个问题要怎么解决. 也就是说除了 http://www.xxx.com/default.aspx 这个地址外.如上面的重复路径将无法访问求助...

解决方案 »

  1.   

    很简单啊,在你的global.asax中对 Application_BeginRequest 事件处理中,判断 
    HttpContext.Current.Request 中的请求路径,如果发现有两个“.aspx”,你就直接 
    HttpContext.Current.Response.Redirect 到你们街道党委的网站上去就行了。
      

  2.   

    你去装一下微软的urlscan v31,就可以了。 我刚试了,在我自己机器上http://www.xxx.com/default.aspx/default.aspx是可以访问的,而在我服务器上,就出现无法找到该页。原因应该是服务器上装了urlscan,我自己机器上没装。
      

  3.   

    另外补充以一个问题. 5楼的tx提供的是一种解决办法, 但是这是在可以设置服务器的配置的情况下. 如果环境不允许操作. 这个问题该如何解决呢?P.S: 这个问题之所以会被提出来还是应为搜索引擎的原因. 不知道为什么 google忽然对我的一个站点抓出的页面地址全部是 www.xxx.com/1.aspx/1.aspx 这样. 虽然页面能打开, 但是由于图片地址和其他文件地址的原因, 造成这样的页面打开后界面全部显示不正常. 所以才提出了这个问题. 
      

  4.   

    自己编一个iHTTPhandler,如果发现有这样的URL,跳到错误页.