ASP.NET 4.5 Web Forms自定义404页面最佳实践
ASP.NET 4.5 Web Forms Custom 404 Page Best Practice
好吧,大约一个星期以来,我一直在网上搜索,尝试自己的解决方案并测试结果。但不幸的是,我没有得到所需的令人满意的结果。
问题详情:
- 使用 IIS 7.5
问题在于;使用 Response.Redirect();
方法或在 "Web.Config" 文件中声明 customErrors
和 httpErrors
部分,发送到浏览器的第一个状态代码是 302,然后是 404。
使用 Server.Transfer();
方法,甚至使用 System.Reflection 修改 Page_Load();
中的 QueryString[]
集合,这会发送 404 状态代码直接到浏览器但是 "Page Name" (URL) 不是我自定义的 404 页面的名称,而是请求的不存在的页面 URL,这是一个大问题(这可以使用检查Google Chrome 开发人员工具 > 网络窗格),我已经尝试通过使用 JavaScript window.history.pushState();
更改浏览器地址栏中的 URL 来解决此问题但这并没有什么不同。
我的问题是:
ASP.NET Web Forms 4.5 中自定义 404 页面的最佳做法是什么;直接发送 404 HTTP 状态代码作为第一个响应,在地址栏中保留 404 页面 URL(没有重定向,也没有 JavaScript)?
注意:如果我缺少任何其他信息,无法让 Google 检测和识别最佳 404 页面,请列出。
谢谢。
我已经通过使用URL Rewrite Module 2.0 for IIS 7.5解决了这个问题,使用这个之后,404页面被测试人员成功识别。
我想通了,404页面地址没必要保持不变,可能是不存在页面的URL
感谢您的帮助。
好吧,大约一个星期以来,我一直在网上搜索,尝试自己的解决方案并测试结果。但不幸的是,我没有得到所需的令人满意的结果。
问题详情:
- 使用 IIS 7.5
问题在于;使用 Response.Redirect();
方法或在 "Web.Config" 文件中声明 customErrors
和 httpErrors
部分,发送到浏览器的第一个状态代码是 302,然后是 404。
使用 Server.Transfer();
方法,甚至使用 System.Reflection 修改 Page_Load();
中的 QueryString[]
集合,这会发送 404 状态代码直接到浏览器但是 "Page Name" (URL) 不是我自定义的 404 页面的名称,而是请求的不存在的页面 URL,这是一个大问题(这可以使用检查Google Chrome 开发人员工具 > 网络窗格),我已经尝试通过使用 JavaScript window.history.pushState();
更改浏览器地址栏中的 URL 来解决此问题但这并没有什么不同。
我的问题是:
ASP.NET Web Forms 4.5 中自定义 404 页面的最佳做法是什么;直接发送 404 HTTP 状态代码作为第一个响应,在地址栏中保留 404 页面 URL(没有重定向,也没有 JavaScript)?
注意:如果我缺少任何其他信息,无法让 Google 检测和识别最佳 404 页面,请列出。
谢谢。
我已经通过使用URL Rewrite Module 2.0 for IIS 7.5解决了这个问题,使用这个之后,404页面被测试人员成功识别。
我想通了,404页面地址没必要保持不变,可能是不存在页面的URL
感谢您的帮助。