我有一个 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 管道之前 Hook 并尝试重定向(这永远不会被调用,因为 IIS 在我们执行请求之前给出错误页面)
有什么想法吗? :-) 谢谢
最佳答案
我认为在<preprocessRequest>
pipeline 有一个用于 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>
关于asp.net - 篡改页面扩展名时出现404页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12109573/