Sitecore - обработка страницы с ошибками нескольких сайтов - PullRequest
3 голосов
/ 09 ноября 2010

У меня есть проект Sitecore с несколькими сайтами. Я знаю, как обрабатывать страницы ошибок с помощью ErrorPage, ItemNotFoundUrl, LayoutNotFoundUrl, LinkItemNotFoundUrl для одного сайта.

Однако я хочу отображать разные страницы ошибок для каждого сайта. Как я могу сделать это?

Ответы [ 3 ]

5 голосов
/ 10 ноября 2010

В любом случае вы, вероятно, можете сохранить URL-адреса страниц ошибок для каждого сайта в качестве атрибутов элементов /configuration/sitecore/sites/site в web.config, расширив класс Sitecore.Sites.SiteContext ( см. Для получения информации о расширении существующих классов.).

В форуме SDN содержится более подробная информация о состоянии 404 /ItemNotFound, включая пример расширения Sitecore.SItes.SiteContext.

Для ItemNotFoundUrl,Я думаю, это зависит от того, используете ли вы элемент или файл в качестве страницы 404.Если вы обрабатываете 404 с элементами, то после распознавателя элементов добавьте процессор к конвейеру httpRequestBegin, чтобы установить для элемента контекста значение 404 для этого сайта, если элемент контекста равен нулю.Если вы используете файлы, тогда я думаю переопределить Sitecore.Pipelines.HttpRequest.ExecuteRequest.HandleItemNotFound() и Sitecore.Resources.Media.MediaRequestHandler.DoProcessRequest() и обновить соответствующие ссылки в файле web.config.

Для ErrorPage, я думаю, вам придется переопределить Sitecore.Pipelines.RenderLayout.SecurityCheck.Process иобновите соответствующую ссылку в web.config.

Для LayoutNotFoundUrl, я думаю, вам придется переопределить Sitecore.Pipelines.HttpRequest.ExecuteRequest.HandleLayoutNotFound и обновить соответствующую ссылку в web.config.

Для LinkItemNotFoundUrl я бы, вероятно, добавил процессор к конвейеру renderField, чтобы выполнить замену значения по умолчанию для параметра на значение, которое применяется для сайта контекста.

Если этообщее требование, мы должны превратить его в проект Sitecore Shared Source или добавить его в существующий проект.

4 голосов
/ 15 февраля 2013

Существует проект Shared Source, который должен соответствовать большинству требований.Он называется Sitecore Error Manager .

Надеюсь, это поможет.

4 голосов
/ 09 ноября 2010

В записке SDN есть запись о том, как сделать это для установки на несколько сайтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...