2012-08-24 132 views
2

我有一個Sitecore解決方案,我們處理404請求。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給出的errorPage之前我們得到執行請求)

任何想法? :-)感謝

回答

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> 
+0

太棒了 - 工作! :-) 謝謝! –

+2

確保您的IIS處理404郵件到Sitecore設置的同一頁面會更加正確。 –