404页面篡改页面扩展名时

时间:2012-08-24 12:39:39

标签: asp.net iis-7 webforms http-status-code-404 sitecore

我有一个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在我们执行请求之前提供了错误,所以从未调用过此方法)

有什么想法吗? :-)谢谢

1 个答案:

答案 0 :(得分: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>