zoukankan      html  css  js  c++  java
  • asp.net动态输出404

     本文地址:http://www.cnblogs.com/dengxinglin/archive/2013/05/10/3071522.html

    我们有时候会根据参数来变化而显示输出404页面,如aa.aspx?id=xxx,你可能通过url来重写之后的地址是xxx.html了,

    当xxx=1是数据库存在id为1的时候我正常输出记录来。

    假如当xxx=5,数据库这条记录被删除了。我们为了5.html能够告诉用户和搜索引擎这个页面是不存在的,我们需要返回404页面了。

    只需要通过下面代码

     Response.StatusCode =404;
                    Response.Status = "404 Not Found";
                    Response.End();

    到底是不是404我们来检测试下

    上面的代码是完全可以输出404页面了的,不过你这里是要自定义输出的内容,可以如下来:

     Response.StatusCode =404;
                    Response.Status = "404 Not Found";
     Response.Write("<html xmlns=\"http://www.w3.org/1999/xhtml/" ><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><title>页面没有找到</title><meta http-equiv=\"refresh\" CONTENT=\"0; url=/\"></head><body><div>" +
        "<div>这样页面没有找到啊,这样页面没有找到啊,这样页面没有找到啊,这样页面没有找到啊,这样页面没有找到啊,这样页面没有找到啊,这样页面没有找到啊,</div></div></body></html>");
                    Response.End();

    如果自定义输出内容了,那就需要输出的html字符最好大于521B,ie下面会对小于512B的替换成ie自己的页面了。



    不过好像看有的童鞋说,Response.Redirect("404.html")不是一样会显示一个404页面里吗,会改变当前的url地址,而Response.Redirect是重定向的。

    我通过Server.Transfer不是一样实现了404页面吗??

    Response.StatusCode = 404;
    Response.Status = "404 Not Found";
    Server.Transfer("404.html");//Response.Transfer方法(404.html在服务器不存在)

    用上面是可以输出一个404的页面了,而且url地址也没有改变。那是不是就是返回404了呢??

    我们查看它返回的状态码如下图

    发现了吧,返回的302状态码。

    用Response.Redirect或者Server.Transfer都是重定向的,不要来用做404输出!!

    作者:划风
    邮箱:emaisi@hotmail.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    在yii中使用Filter实现RBAC权限自动判断
    关于WEB设计透明和阴影
    一句话扯扯数据结构的概念点
    Console API Google 浏览器开发人员工具使用
    git提交项目时候,忽略一些文件
    学习笔记 如何解决IE6 position:fixed固定定位问题{转载}
    [转载]yii jquery折叠、弹对话框、拖拽、滑动条、ol和ul列表、局部内容切换
    Jquery 常用方法经典总结【砖】
    PHP中冒号、endif、endwhile、endfor这些都是什么
    [转载]救命的PHP代码
  • 原文地址:https://www.cnblogs.com/dengxinglin/p/3071522.html
Copyright © 2011-2022 走看看