jet*_*rrl 2 c# asp.net http-headers http-status-code-410
我有一个页面,用于检查用户是否已登录或文件是否公开,然后通过Response.WriteFile将PDF推送到浏览器.
除非Google索引文件然后我们删除该文件,否则效果很好.所以我正在为Response.Status添加一个410 Gone,然后重定向到我们的error.aspx页面.
Firebug告诉我,当文件被删除时,它会在文档页面上获得"302 Found"状态代码.我期待着410.
重定向代码是:
Response.Status = "410 Gone";
Response.AddHeader("Location", Request.Url.ToString());
Response.Redirect("error.aspx");
Run Code Online (Sandbox Code Playgroud)
请问有人请告诉我我的错误吗?
重定向是通过发送一个状态来完成的,该状态指示资源在其他地方可用,例如301 Moved Permanently或302 Found.您不能在同一响应中发送两个状态代码.请求的资源不存在(因此您发送410)或它确实存在于某个其他位置(因此您发送301或302或其他).
但是,我认为您不应该重定向到错误页面,因为错误消息不是应该具有自己的URL的单独资源.如果客户端请求文件并且文件已经消失,则发送410 Gone状态,并将错误消息作为响应正文 - 这样,错误消息将从不存在的文件本身的URL返回.搜索引擎将查看状态代码并了解文件已消失,浏览器将向用户显示响应正文,以便他可以阅读错误消息.
| 归档时间: |
|
| 查看次数: |
5927 次 |
| 最近记录: |