Домашняя страница сайта 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:
Способ 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 (..)."
На этом ограничения заканчиваются.
Любой файл на сайте
Начальной страницей может быть не только страница, но и любой файл на сайте. Указав в качестве домашней страницы ссылку на изображение в библиотеке, мы получим редирект с сайта на указанный файл:
Дочерний сайт
Можно указать в качестве домашней страницы ссылку на дочерний сайт.
Если, например, есть сайт 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:
Примеры работают в SharePoint 2010/2013/2016 и SharePoint Online.