代码之家  ›  专栏  ›  技术社区  ›  Carson63000

IIS 6.0在URL中的页面名称后使用斜杠做什么?

  •  3
  • Carson63000  · 技术社区  · 16 年前

    他们使用的是iis6.0,出于某种原因,他们没有在服务器上正常请求页面,我称之为www.domain.com/Default.aspx,而是有人键入了www.domain.com/Default.aspx/randomstuff

    似乎IIS的响应是正常地为Default.aspx提供服务,但是,就浏览器而言,路径是www.domain.com/Default.aspx/而不是www.domain.com/,因此指向CSS、图像等的所有相对路径都会失败

    我不相信他们在URL重写方面做了什么特别的工作,但为了确定,我在一个新创建的ASP.NET web应用程序上做了一个实验,结果是一样的。

    那么,是什么导致IIS将/Default.aspx/randomstuff这样的URL作为对Default.aspx的请求传递给ASP.NET管道呢?你能阻止它,让它像你想象的那样扔404吗?

    2 回复  |  直到 16 年前
        1
  •  3
  •   SLaks    16 年前

    这就是所谓的 PathInfo 组件。

    你可以这样停下来:

    if (!String.IsNullOrEmpty(Request.PathInfo)) throw new HttpException(404);
    
        2
  •  2
  •   bobince    16 年前

    是的,这很正常。阿帕奇也会这么做。

    你可以用它来路由,这样你就可以有网址了 /script.name/random/stuff /script.name?page=random&section=stuff 无需设置URL重写。

    script.name 是真正的剧本吗 random stuff 随机的 目录通常,当您使用路由编写应用程序时,出于这个原因,您必须确保使用根URL或绝对URL,而不是相对URL。

    你能阻止它,让它像你想象的那样扔404吗?

    推荐文章