2

我有一个 Sitecore 解决方案,我们在其中处理 404 请求。

我们通过在 web.config 中设置“ErrorPage”和“ItemNotFoundUrl”来做到这一点:

<setting name="ErrorPage" value="/sitecore/service/error.aspx" />

<setting name="ItemNotFoundUrl" value="/Global/ErrorPages/404" />

现在,这在我们编辑页面名称时有效。因此,如果我们有 www.domain.com/mypage.aspx ,然后转到不存在的 www.domain.com/mysdfsa.aspx ,它将显示我们的错误页面。

但是,如果我们这样做:

www.domain.com/mypage.zip / www.domain.com/mypage.gosfgfgs

它给出了 IIS 错误:

Error Summary
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

我尝试了什么?

我们至少需要为 ZIP 文件制作它。

  • 确保将 .ZIP 添加到 IIS 和 Sitecore MIME 类型
  • 在 ExecuteRequest 管道之前挂钩并尝试重定向(这从未被调用,因为 IIS 在我们执行请求之前给出了错误页面)

有任何想法吗?:-) 谢谢

4

1 回答 1

2

我认为在<preprocessRequest>管道中有一个用于 Sitecore 处理的扩展的处理器。您应该尝试更新:

<processor type="Sitecore.Pipelines.PreprocessRequest.FilterUrlExtensions, Sitecore.Kernel">
  <param desc="Allowed extensions (comma separated)">aspx, ashx, asmx</param>
  <param desc="Blocked extensions (comma separated)">*</param>
  <param desc="Blocked extensions that stream files (comma separated)">*</param>
  <param desc="Blocked extensions that do not stream files (comma separated)"></param>
</processor>
于 2012-08-24T12:44:17.003 回答