【问题标题】:How I can to create a custom page for error code 404?如何为错误代码 404 创建自定义页面?
【发布时间】:2019-10-09 12:21:31
【问题描述】:

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

感谢您的帮助!

【问题讨论】:

    标签: sitecore sitecore8


    【解决方案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 Url(因此是 404 的内容页面),您就可以拥有一个内容管理页面,以便 Sitecore 何时可以处理错误.

    【讨论】:

    • 非常感谢!但就我而言,原因有点不同:) 我注意到你的回答很有用
    【解决方案2】:

    在 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 文件中定义,在此处更改它们将产生相同的效果,但我建议添加补丁配置文件,因为这将使您的解决方案更容易在未来更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-13
      • 1970-01-01
      • 2014-09-30
      • 2021-02-07
      • 1970-01-01
      • 2020-09-14
      • 2011-09-24
      • 2016-04-25
      相关资源
      最近更新 更多