Вопрос

У меня есть издательский сайт SharePoint 2010 с двумя вариантными этикетками.

На уровне сбора сайтов, в соответствии с настройками поиска, поиск настроен следующим образом:

  • Поисковый центр коллекции сайтов: Не используйте пользовательские области
  • Поиск по поиску сайтов выпадает в режим: Не показывайте выпадающие прицелы и по умолчанию в контекстуальную область
  • Страница результатов поиска сайтов: /_layouts/osssearchresults.aspx

Когда я выполняю поиск, страница результатов поиска - at/;variation/_layouts/osssearchresults.aspx. Все хорошо до сих пор.

Я добавил копию Osssearchresults.aspx к моему решению и переименован в его Myosssearchresults.aspx а затем изменил Страница результатов поиска сайтов Настройка на /_layouts/myosssearchresults.aspx.

Теперь, когда я выполняю поиск, результаты отображаются по адресу /_Layouts/myosssearchresults.aspx - на уровне сбора сайтов, выше моих вариантов.

Что мне нужно сделать, чтобы убедиться, что моя пользовательская версия osssearchresults.aspx показала результаты поиска на уровне вариации?

Благодарю вас!

Это было полезно?

Решение

Я понимаю, что это не идеальный подход для реализации поиска на публичном веб -сайте SharePoint, но я хотел разместить его на случай, если другие люди столкнутся с тем же вопросом.

Я создал копию osssearchresults.aspx и сделал для нее необходимые конфигурации стиля и веб -части. Мне пришлось сделать еще несколько вещей, чтобы заставить это правильно работать в рамках структуры вариаций и на анонимном сайте:

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. Измените код, стоящий за классом для search.aspx, чтобы унаследовать от UnsecuredLayoutsPageBase и установить его AllowAnonymousAccess собственность к истинному.

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

Без этого анонимные пользователи не смогут получить доступ к странице результатов поиска.

3. Изменить поиск и настройки доступности в автономном режиме

Убедитесь, что «всегда индексируйте все веб -части на этом сайте», в противном случае анонимные пользователи не видят результатов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top