none
自定义404页面? RRS feed

  • 问题

  • <customErrors mode="On" defaultRedirect="FileNotFound.aspx">
          <error statusCode="403" redirect="FileNotFound.aspx" />
          <error statusCode="404" redirect="FileNotFound.aspx" />
     </customErrors>

    这样配置只有扩展名为.aspx的文件才会跳到指定文件上,而当输入.html时或者根本不输入时(如:http://localhost/abcd/)还是会跳出系统的404页面

    2011年6月28日 13:53

答案

全部回复

  • 静态页面是iis直接处理的,不是asp.net 处理程序执行的,你可以在iis里面的应用程序扩展里面将.htm添加进去,与aspx扩展名采用相同的处理程序
    【孟子E章】
    2011年6月29日 1:56
    版主
  • 静态页面是iis直接处理的,不是asp.net 处理程序执行的,你可以在iis里面的应用程序扩展里面将.htm添加进去,与aspx扩展名采用相同的处理程序
    【孟子E章】

    但是当不输入文件扩展名直接输入目录时还是会出现系统的404页面,MVC如何实现的?
    2011年6月29日 6:02
  • 自定义404页面必须大于512字节
    2011年6月30日 16:52
  • 静态页面是iis直接处理的,不是asp.net 处理程序执行的,你可以在iis里面的应用程序扩展里面将.htm添加进去,与aspx扩展名采用相同的处理程序
    【孟子E章】

    但是当不输入文件扩展名直接输入目录时还是会出现系统的404页面,MVC如何实现的?

    这个你把IIS自带的404页面修改了就好了
    算神的博客
    2011年7月1日 5:28
  • 可以在web.config中定义,

    <customErrors mode="On">
      <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>

    然后,就可以 throw 404 exception,比如,

    public ActionResult Detail(int? id)
    {
        // Look up the product by ID.
        Product product = products.FirstOrDefault(p => p.Id == id);
     
        // If it wasn't found, throw a 404 HttpException.
        if (product == null)
            throw new HttpException(404, "Product not found.");
     
        return View(product);
    }

    具体可以参考,http://richarddingwall.name/2008/08/17/strategies-for-resource-based-404-errors-in-aspnet-mvc/


    2011年7月4日 6:55
    版主