Домашняя страница сайта SharePoint

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

Домашняя страница

При открытии сайта SharePoint по URL вида http:/// браузер получает ответ со статусом HTTP 302 (ресурс временно перемещен) и указанием URL-адреса, на который необходимо перейти. На этом основан механизм настройки домашней страницы сайта в SharePoint.

Механизм хранения

При определении домашней страницы SharePoint считывает свойство vti_welcomepage корневой папки сайта. Используя следующий PowerShell, можно посмотреть значение для сайта:

(Get-SPWeb http://spweburl).RootFolder.WelcomePage

Если значение этого свойства не задано, то страницей по умолчанию считается default.aspx.

Изменение домашней страницы

Изменить домашнюю страницу сайта можно несколькими способами.

Способ 1: Параметры сайта

Домашнюю страницу можно изменить в разделе Страница приветствия параметров сайта:

Параметры сайта. Страница приветствия

Параметры сайта. Страница приветствия

Параметры сайта. Страница приветствия

Параметры сайта. Страница приветствия

Можно воспользоваться кнопкой Обзор... для удобного выбора домашней страницы сайта.

Способ 2: SharePoint Designer

Чтобы задать страницу приветствия с помощью SharePoint Designer достаточно в контекстном меню файла выбрать Set as a Home Page:

SharePoint Designer. Страница приветствия

SharePoint Designer. Страница приветствия

Способ 3: PowerShell

Того же результата можно достичь, используя PowerShell:

$web = Get-SPWeb -Identity http://spweburl
$folder = $web.RootFolder
$folder.WelcomePage = "default.aspx"
$folder.Update()

Допустимые значения

Изменение домашней страницы с помощью параметров сайта и SharePoint Designer ограничено из-за использование интерфейса. С помощью PowerShell можно достичь большей гибкости.

Ограничения, накладываемые SharePoint при задании домашней страницы:

  • Путь должен быть относительным по отношению к корневой папке сайта;
  • Путь не должен содержать двух точек.

В противном случае будет выдано соответствующее исключение:

Exception setting "WelcomePage": "The WelcomePage property must be a path that is relative to the folder, and the path cannot contain two consecutive periods (..)."

На этом ограничения заканчиваются.

Любой файл на сайте

Начальной страницей может быть не только страница, но и любой файл на сайте. Указав в качестве домашней страницы ссылку на изображение в библиотеке, мы получим редирект с сайта на указанный файл:

302 статус при запросе сайта SharePoint

302 статус при запросе сайта SharePoint

Дочерний сайт

Можно указать в качестве домашней страницы ссылку на дочерний сайт.

Если, например, есть сайт http://portal и дочерний сайт http://portal/subsite, то для родительского сайта можно указать дочерний сайт в качестве домашней страницы (адрес должен быть относительным, т.е. без / вначале):

$web = Get-SPWeb -Identity http://portal
$folder = $web.RootFolder
$folder.WelcomePage = "subsite"
$folder.Update()

Список

Аналогично можно указать ссылку на представление списка или библиотеки документов. При открытии сайта пользователь будет автоматически перенаправлен на список:

$web = Get-SPWeb -Identity http://portal
$folder = $web.RootFolder
$folder.WelcomePage = "Lists/MyList/AllItems.aspx"
$folder.Update()

QueryString, Hash

Также в адресе домашней страницы можно использовать QueryString и/или Hash. В следующем примере домашней страницей будет форма просмотра элемента списка с идентификатором, равным 1. Дополнительно в адрес передается hash:

$web = Get-SPWeb -Identity http://portal
$folder = $web.RootFolder
$folder.WelcomePage = "Lists/MyList/DispForm.aspx?ID=1#hash"
$folder.Update()

И результат в Developer Tools:

302 статус и редирект на указанный URL

302 статус и редирект на указанный URL

Примеры работают в SharePoint 2010/2013/2016 и SharePoint Online.

Виталий Жуков

Виталий Жуков

Техлид, Архитектор, Разработчик, Microsoft MVP. Более 20 лет опыта в области системной интеграции и разработки программного обеспечения. Специализируюсь на проектировании и внедрении масштабируемых высокопроизводительных программных решений в различных отраслях.

Смотрите также