SharePoint Online:如何实现自定义 404 页面未找到错误页面?
要求: 在 SharePoint Online 中实现自定义页面未找到错误页面。
SharePoint Online:如何添加自定义 404 页面未找到错误页面
SharePoint Online 在发布网站的“页面”库中附带默认的“找不到页面”基本错误页面 (https://crescent.sharepoint.com/Pages/PageNotFoundError.aspx),当用户尝试访问该页面时,会自动显示该页面访问不存在的页面或文件。但可以对其进行定制以满足特定的业务需求。在本文中,我们将探讨如何在 SharePoint Online 中实现自定义 404 未找到页面错误页面。此错误页面适用于整个网站集。
您可以进一步自定义此页面,位于“/Pages/PageNotFoundError.aspx”以添加一些描述性文本、图像和品牌。在某些情况下,您可能需要创建自己的 404 页面,步骤如下:
步骤 1:在 SharePoint Online 中添加未找到新页面错误页面:
我们可以创建自定义页面并将其设置为任何 SharePoint Online 网站集的未找到页面错误页面。以下是创建自定义 404 页面未找到错误页面的步骤:
- 转到网站内容>>选择页面库并创建新>>错误页面。
- 使用您的样式和图像自定义错误页面,然后保存。
步骤 2:设置默认 404 Page Not Found 错误页面:
自定义错误页面准备就绪后,下一步是将页面配置为默认的 404 页面未找到错误页面。这可以通过 PowerShell 或使用 SharePoint Designer 来完成。
选项 1:PowerShell 在 SharePoint Online 中设置自定义错误页面:
要设置自定义页面未找到错误页面,我们需要更新根网站属性包中的“vti_filenotfoundpage”键目的。以下是用于为网站集设置自定义错误页面的 PowerShell 脚本。
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Set Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$CustomPageNotFoundURL = "/sites/marketing/Pages/404.aspx"
#Get Credentials to connect
$Cred = Get-Credential
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
#Get the Root Web and its Property Bag
$Web = $Ctx.Web
$Ctx.Load($Web)
$Ctx.Load($Web.AllProperties)
$Ctx.ExecuteQuery()
#Update the Key value in Property bag
$Web.AllProperties["vti_filenotfoundpage"] = $CustomPageNotFoundURL
$Web.Update()
$Ctx.ExecuteQuery()
Write-Host -f Green "Custom 404 Page Not Found Error page has been Set!"
}
Catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
您还可以使用 PnP PowerShell 将 404 错误页面设置为:
Set-PnPPropertyBagValue -Key "vti_filenotfoundpage" -Value "/sites/Your-site-url/SitePages/Page-not-found.aspx"
选项 2:使用 SharePoint Designer 设置自定义页面未找到错误页面:
您还可以使用 SharePoint 设计器设置自定义页面未找到错误页面:以下是操作方法:
- 在 SharePoint Designer 2013 中打开 SharePoint Online 网站集
- 选择左侧导航中的站点对象,单击功能区中的站点选项按钮
将站点的“vti_filenotfoundpage”属性分配给您创建的自定义错误页面 URL。 (如果不存在则添加新条目)
- 单击“确定”按钮提交更改。
我可以在不激活发布功能的情况下实现自定义页面未找到错误页面吗?
非发布网站怎么样?如何在团队网站中添加自定义 404 错误页面?具体方法如下:
- 导航到您的 SharePoint Online 网站集,选择任何文档库(例如“网站资产”)
- 启用内容类型:单击设置>>库设置>>高级设置>>将“允许管理内容类型”选项设置为“是”,然后单击页面底部的“确定”
- 现在,在“库设置”页面上的“内容类型”下,单击“从现有网站内容类型添加”链接
- 将“基本页面”内容类型添加到库中。现在,返回库>>单击“新建”>>基本页面>>为错误页面命名(例如404),然后单击“创建”
- 在页面中添加一些描述性文本和图像并保存!
现在,您已准备好自定义错误页面。您可以使用上述 PowerShell 或 SharePoint Designer 方法来设置 SharePoint Online 的自定义页面未找到错误页面!
如何在现代 SharePoint Online 网站中设置自定义 404 错误页面?
当您想要在现代团队网站或通信网站上实现自定义页面未找到错误页面时,适用相同的过程。当您尝试访问不存在的页面时,现代 SharePoint Online 网站只会显示“404 NOT FOUND”文本。创建一个页面(您不需要启用发布功能!只需一个网站页面即可!)并使用此 PowerShell 脚本将该页面设置为默认 404 错误页面。
#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$ErrorPageURL = "/sites/Marketing/SitePages/404-error.aspx" #Server Relative URL of the Error page
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Set 404 Error Page
Set-PnPPropertyBagValue -Key "vti_filenotfoundpage" -Value $ErrorPageURL
确保您已为您的网站集启用自定义脚本!如何在 SharePoint Online 中启用自定义脚本?
总之,在 SharePoint Online 中自定义 404 未找到页面错误页面是一个简单的过程,可以极大地增强网站访问者的用户体验。通过使用自定义错误页面,您可以帮助用户导航回网站的主页,并减少他们遇到损坏的链接或丢失页面时的挫败感。无论您是 SharePoint 管理员还是网站所有者,实施自定义 404 错误页面都是改善 SharePoint Online 体验的快速有效方法。

