我有一个带有两个变体标签的SharePoint 2010发布网站。

在站点收集级别,在搜索设置下,搜索的配置如下:

  • 场地收集搜索中心: :不要使用自定义范围
  • 网站收集搜索下拉模式: :不要显示示波器下拉列表,默认为上下文范围
  • 站点收集搜索结果页面: :/_layouts/ossearchresults.aspx

当我执行搜索时,搜索结果页面为/{variation }/_layouts/osssearchresults.aspx。到目前为止都很好。

我添加了 osssearchResults.aspx 给我的解决方案并将其重命名为 MyosssearchResults.aspx 然后更改 站点收集搜索结果页面 设置为/_layouts/myosssearchResults.aspx。

现在,当我执行搜索时,结果将显示在 /_layouts/myosssearchresults.aspx-在我的变体上方的站点集合级别上。

我需要做什么来确保我的自定义版本的OsssearchResults.aspx在变化级别显示搜索结果?

谢谢!

有帮助吗?

解决方案

我意识到,这不是在公共SharePoint网站上实施搜索的理想方法,但是我想在其他人遇到同一问题的情况下将其放在那里。

我创建了OsssearchResults.aspx的副本,并为其制作了必要的样式和Web部件配置。我必须做更多的事情,以使其在变化结构和匿名站点中正常工作:

1.将站点集合搜索结果页面设置为../layouts/search.aspx

注意“ ..”,这确保我的搜索结果页面仍然存在于我的变化范围内,如果我从 http://www.domain.com/en/subsite, ,结果在 http://www.domain.com/en/subsite/_layouts/search.aspx.

如果您不将“ ..”添加到配置中,则URL为 http://www.domain.com/en/subsite/pages/_layouts/search.aspx, ,显然无法正常工作。

2.更改class的代码以获取search.aspx以继承 UnsecuredLayoutsPageBase 并设置它 AllowAnonymousAccess 属性为真。

public partial class Search : UnsecuredLayoutsPageBase
{
    protected override bool AllowAnonymousAccess
    {
        get
        {
            return true;
        }
    }
}

没有此,匿名用户将无法访问搜索结果页面。

3.更改搜索和离线可用性设置

确保检查“始终索引本网站上的所有Web零件”,否则匿名用户看不到结果。

许可以下: CC-BY-SA归因
scroll top