如何为错误代码404创建自定义页面?

时间:2019-10-09 12:21:31

标签: sitecore sitecore8

请问我如何在Sitecore中做到这一点?我是Sitecore的初学者,我需要逐步了解它。您可能知道任何有关的说明,视频或文章吗?

谢谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您可以在web.config中配置两个标准的.NET错误页面(建议您使用转换来修改web.config)

<system.webServer>       
    <httpErrors xdt:Transform="Remove" />
    <httpErrors errorMode="DetailedLocalOnly">
        <remove statusCode="404" subStatusCode="-1" />
        <remove statusCode="500" subStatusCode="-1" />
        <error statusCode="404" prefixLanguageFilePath="" path="404.html" responseMode="File" />
        <error statusCode="500" prefixLanguageFilePath="" path="Error.html" responseMode="File" />
    </httpErrors>

您还可以通过修补以下Sitecore配置设置,将sitecore配置为设置自定义错误页面:

<configuration>
    <sitecore>
     <settings>            
        <setting name="RequestErrors.UseServerSideRedirect">
            <patch:attribute name="value">true</patch:attribute>
        </setting>
        <setting name="ItemNotFoundUrl">
            <patch:attribute name="value">/Error/404</patch:attribute>
        </setting>
        <setting name="LayoutNotFoundUrl">
            <patch:attribute name="value">/Error/404</patch:attribute>
        </setting>
        <setting name="LinkItemNotFoundUrl">
            <patch:attribute name="value">/Error/404</patch:attribute>
        </setting>
        <setting name="NoAccessUrl">
            <patch:attribute name="value">/Error.aspx</patch:attribute>
        </setting>
      </settings>
    </sitecore>
</configuration>

您要查找的是ItemNotFoundUrl,只要您将其设置为合法的Sitecore网址(即404的内容页面),就可以拥有一个内容托管页面,以了解何时Sitecore可以处理错误

答案 1 :(得分:0)

在SITECORE中创建自定义404页面

没有人希望看到标准的Sitecore 404页面。幸运的是,通过一些配置设置更改用户重定向到的错误页面确实非常容易。

您的错误页面可以是Sitecore或静态HTML文件中的页面。对于404页,我通常会使用Sitecore页,这样内容作者仍可以管理其内容。对于错误页面,我建议您使用静态html文件,以避免错误页面可能出现错误的问题。

将这些添加到补丁文件并相应地更新网址:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <settings>
      <!--  ITEM NOT FOUND HANDLER
            Url of page handling 'Item not found' errors
      -->
      <setting name="ItemNotFoundUrl">
        <patch:attribute name="value">/ErrorPages/404.html</patch:attribute>
      </setting>
      <!--  LINK ITEM NOT FOUND HANDLER
            Url of page handling 'Link item not found' errors
      -->
      <setting name="LinkItemNotFoundUrl">
        <patch:attribute name="value">/ErrorPages/404.html</patch:attribute>
      </setting>
      <!--  LAYOUT NOT FOUND HANDLER
            Url of page handling 'Layout not found' errors
      -->
      <setting name="LayoutNotFoundUrl">
        <patch:attribute name="value">/ErrorPages/404.html</patch:attribute>
      </setting>
      <!--  ERROR HANDLER
            Url of page handling generic errors
      -->
       <setting name="ErrorPage">
        <patch:attribute name="value">/ErrorPages/Error.html</patch:attribute>
      </setting>
    </settings>
  </sitecore>
</configuration>

这些设置已经在web.config文件中定义,并且在此处进行更改将具有相同的效果,但是我建议添加补丁配置文件,因为这将使您的解决方案将来更容易更新。