在多站点解决方案的某些站点中隐藏 Sitecore 页面

Hide Sitecore page in certain sites in multisite solution

我们在同一个 Sitecore 实例中有多个站点 运行。所有网站都有相同的起始项目和项目树,因为每个网站上的内容大部分相同。

有些页面应该出现在某些网站上,但不会出现在其他网站上。我希望能够配置一个项目,使其仅存在于站点 A 中,如果用户试图在站点 B 上访问它,那么他们会收到 404 错误。 Sitecore 是否有实现此目的的内置方法?

我目前的想法是在页面模板中添加一个 属性 'Sites to appear on',然后添加一个自定义管道处理器来检查当前页面的这个值,然后 returns页面或 404 错误。

My current idea consists of adding a property 'Sites to appear on' to the page template, and then adding a custom pipeline processor which checks this value for the current page and then either returns the page or a 404 error.

这实际上是您可以提供的最佳方法! 只需将多列表字段添加到项目模板以选择允许的站点,将自定义属性添加到站点配置中的站点定义(例如 siteId={id})。

之后,您可以轻松地在站点解析器中比较这些值。

请记住,您还应该覆盖 link 管理器以确保正确生成您的 links