SharePoint 2010中有变化的自定义OsssearchResults.aspx
-
16-10-2019 - |
题
我有一个带有两个变体标签的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零件”,否则匿名用户看不到结果。