【发布时间】:2025-12-18 16:55:01
【问题描述】:
我正在开发一个 SharePoint 2010 发布网站。它正在替换使用 asp 构建的旧网站。
由于它面向公众且匿名,因此我们正在实施自定义 404 页面。奇怪的是,这不是简单的 OOTB(像往常一样),但我确实设法部署了 404 页面并使用事件接收器将其链接起来。完美,工作正常。
因此,在测试中,我尝试输入一些不存在的随机页面。它适用于 .htm、.html 和 .aspx。接下来,我尝试了 .asp 扩展名,因为这是所有优秀书签/搜索引擎链接的基础。而不是 404 页面,我得到了一个空白页面。我在 Firebug 中检查了它,该文件实际上返回了一个 404 标头,但它没有内容。不好。
有人解决了这个问题吗?自定义 http 模块是唯一的方法吗??
顺便说一句,另一个奇怪的行为是,如果您使用未知的扩展程序,它会将 404 页面中的 html 呈现为文本! 编辑:另外,如果您输入一个不存在的无扩展名文件夹,您会得到同样的行为。哇,这奇怪的野兽一直在困扰着我。
谢谢。
更新
看起来 HttpModule 是去这里的唯一方法。我有这个工作 - 如果有人想要完整的代码,请告诉我。我会把它贴在这里,但是 SO 代码格式化程序正在处理问题。
web.config 条目如下所示:
<add name="PageNotFoundHttpModule" type="ProjectName.PageNotFoundHttpModule, ProjectName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=fb507da11a891ef3" preCondition="integratedMode" />
【问题讨论】:
标签: sharepoint sharepoint-2010 http-status-code-404