URL 路径长度限制 (SharePoint Server 2010)

 

适用于: SharePoint Foundation 2010, SharePoint Server 2010

上一次修改主题: 2016-11-30

本文讨论了在规划网站、导航和结构时应了解的 Microsoft SharePoint Server 2010、Internet Explorer 7 和 Internet Explorer 8 中的特定 URL 路径长度和字符限制。本文不讨论其他浏览器中的 URL 长度限制。有关详细信息,请参阅浏览器文档。

本文内容:

  • 了解 URL 和路径长度

  • URL 路径长度限制

  • 解决 URL 长度问题

了解 URL 和路径长度

此节讨论了 URL 的构成、SharePoint Server 2010 生成 URL 的方式、对 URL 进行编码和增加其长度的方式以及在其他 URL 中将 URL 作为参数传递的方式。

SharePoint URL 的构成

SharePoint URL 的总长度等于文件夹或文件路径的长度,包括协议和服务器名称和文件夹或文件名,以及作为 URL 的一部分包含的任何参数。公式如下所示:

  • URL = 协议 + 服务器名称 + 文件夹或文件路径 + 文件夹或文件名 + 参数

例如,以下是存储在 Microsoft SharePoint Server 2010 中的文件的典型 URL 路径:

https://www.contoso.com/sites/marketing/documents/Shared%20Documents/Promotion/Some%20File.xlsx

下表中列出了 URL 路径的各部分所在的位置。

URL 部分 示例

协议

http://

服务器名称

www.contoso.com/

文件夹或文件路径

sites/marketing/documents/Shared%20Documents/Promotion/

文件名

Some%20File.xlsx

当转到网站并使用 Microsoft Office Web Apps 打开文件时,URL 将如下所示:

https://www.contoso.com/sites/marketing/documents/_layouts/xlviewer.aspx?id=/sites/marketing/documents/Shared%20Documents/Promotion/Some%20File.xlsx&Source=http%3A%2F%2Fwww%2Econtoso%2Ecom%2Fsites%2Fmarketing%2Fdocuments%2FShared%2520Documents%2FForms%2FAllItems%2Easpx%3FRootFolder%3D%252Fsites%252Fmarketing%252Fdocuments%252FShared%2520Documents%252FPromotion%26FolderCTID%3D0x012000F2A09653197F4F4F919923797C42ADEC&DefaultItemOpen=1

下表中列出了 URL 路径的各部分所在的位置。

URL 部分 示例

协议

http://

服务器名称

www.contoso.com/

文件夹或文件路径

sites/marketing/documents/Shared%20Documents/Promotion/

文件夹或文件名

xlviewer.aspx

参数

?id=/sites/marketing/documents/Shared%20Documents/Promotion/Some%20File.xlsx

&Source=http%3A%2F%2Fwww%2Econtoso%2Ecom%2Fsites%2Fmarketing%2Fdocuments%2FShared%2520Documents%2FForms%2FAllItems%2Easpx %3FRootFolder%3D%252Fsites%252Fmarketing%252Fdocuments%252FShared%2520Documents%252FPromotion%26FolderCTID%3D0x012000F2A09653197F4F4F919923797C42ADEC

&DefaultItemOpen=1

URL 编码

URL 编码可确保所有浏览器将以 URL 字符串形式正确传输文本。某些浏览器可能会截断或损坏问号 (?)、& 符号、左斜线 (/)、空格等字符。SharePoint Server 2010 遵循 Internet 工程任务组 (IETF) RFC 3986 (https://go.microsoft.com/fwlink/?linkid=195564&clcid=0x804)(该链接可能指向英文页面) 中定义的 URL 编码标准。

在本文前面所述的 URL 路径示例中,Source 参数包含一个双重编码路径且长度为 262 个字符。第一次解码显示:

&Source=https://www.contoso.com/sites/marketing/documents/Shared%20Documents/Forms/AllItems.aspx?RootFolder=%2Fsites%2Fmarketing%2Fdocuments%2FShared%20Documents%2FPromotion&FolderCTID=0x012000F2A09653197F4F4F919923797C42ADEC(为 216 个字符)。

再一次解码显示:

&Source=https://www.contoso.com/sites/marketing/documents/Shared Documents/Forms/AllItems.aspx?RootFolder=/sites/marketing/documents/Shared Documents/Promotion&FolderCTID=0x012000F2A09653197F4F4F919923797C42ADEC(为 200 个字符)。

如果 SharePoint URL 中包含非标准 ASCII 字符(如高位 ASCII 字符或双字节 Unicode 字符),则当将这些字符传递到 Web 浏览器时,会通过 URL 编码方式将它们转换为两个或两个以上的 ASCII 字符。因此,具有多个高位 ASCII 字符或双字节 Unicode 字符的 URL 会变得比原始未编码的 URL 更长。下表提供了倍增因数的示例:

  • 高位 ASCII 字符 - 例如,(!、"、#、$、%、&、[Space]):倍增因数 = 3

  • 双字节 Unicode 字符 - 例如,日语、中文、朝鲜语、印地语:倍增因数 = 9

例如,在 URL 路径 https://www.contoso.com/sites/marketing/documents/Shared%20Documents/Promotion/Some%20File.xlsx 中将网站、库、文件夹和文件的名称翻译成日语时,生成的已编码 URL 路径将变成以下形式:

*https://www.contoso.com/sites/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0/%E6%96%87%E6%9B%B8/DocLib/%E3%83%97%E3%83%AD%E3%83%A2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.xlsx*。此路径为 224 个字符,而原始 URL 路径仅为 94 个字符。

重要

无法在未编码的 URL 中使用下列字符:(~、#、%、&、*、{}、\、:、<>、/、+、|、“)。

URL 参数

URL 参数是作为所处理的 URL 的一部分包含的数据。这些参数也是 URL 编码的,可以对其进行多次编码,这会生成非常长的 URL。

例如,如果您浏览到列表,则 URL 可能与以下内容类似:*https://www.contoso.com/sites/marketing/documents/Shared%20Documents/Forms/AllItemA.aspx?RootFolder=%2Fsites%2Fmarketing%2Fdocuments%2FShared%20Documents%2FPFPromoti&FolderCTID=0x012000F2A09653197F4F4F919923797C42ADEC&View={CD527605-9A7A-448D-9A35-67A33EF9F766}*。此 URL 为 260 个字符。

如果随后单击“库”选项卡上的“创建视图”,则整个 URL 将作为源参数包含在生成的 URL 中,并且会将其编码为更长的 URL - 例如,*https://www.contoso.com/sites/marketing/documents/_layouts/ViewType.aspx?List=%7BED6E21E0%2DDF28%2D4165%2DBC3E%2D5371987CC2D2%7D&Source=http%3A%2F%2Fwww%2Econtoso%2Ecom%2Fsites%2Fmarketing%2Fdocuments%2FShared%2520Documents%2FForms%2FAllItems%2Easpx%3FRootFolder%3D%252Fsites%252Fmarketing%252Fdocuments%252FShared%2520Documents%252FPromotion%26FolderCTID%3D0x012000F2A09653197F4F4F919923797C42ADEC%26View%3D%7BCD527605%2D9A7A%2D448D%2D9A35%2D67A33EF9F766%7D*。此 URL 为 457 个字符。

重要

如果要传递到 Internet Explorer 的 URL 的总长度大于 1950 个字节,则 SharePoint Server 2010 将截断 URL 源参数。源参数是对之前访问的页面的引用。截断源参数会促使用户转回到默认位置,而不是源参数中指定的位置。
不会截断其他参数(如排序顺序、根文件夹参数和视图)。

URL 路径长度限制

此节讨论了 SharePoint Server 2010 和 Internet Explorer 中的各种 URL 长度限制以及如何规划 URL 路径长度。

SharePoint URL 路径长度限制

此节中的限制适用于 SharePoint Server 2010 中文件夹或文件的 URL 路径的总长度,但不适用于任何参数的长度。另外,这些限制仅适用于未编码的 URL,而不适用于已编码的 URL。未对 SharePoint Server 2010 中已编码的 URL 施加任何限制。这些限制如下所示:

  • 260 个 Unicode (UTF-16) 代码单元 – 完整文件路径中的字符,不包括域/服务器名称。

  • 256 个 Unicode (UTF-16) 代码单元 – 完整文件夹路径中的字符,不包括文件名和域/服务器名称。

  • 128 个 Unicode (UTF-16) 代码单元 - 路径组件中的字符,即文件或文件夹名称。

  • 260 个 Unicode (UTF-16) 代码单元 – 完整路径中的字符,包括与 Office 客户端一起使用的域/服务器名称。

  • 256 个 Unicode (UTF-16) 代码单元 – 完整路径中的字符,包括与 Active X 控件一起使用的域/服务器名称。

有关详细信息,请参阅 Microsoft 知识库文章 894630,您收到一条错误消息:“指定的文件或文件夹名称太长” (https://go.microsoft.com/fwlink/?linkid=195567&clcid=0x804)。

备注

了解代码单元 - 大多数情况下,一个 UTF-16 字符等于一个 UTF-16 代码单元。但是,使用大于 U+10000 的 Unicode 码位的字符将等于两个 UTF-16 代码单元。这些字符包括但不限于日语或中文代理对字符。如果路径包含这些字符,则少于 256 或 260 个字符的 URL 的长度也会超过 URL 长度限制。

Internet Explorer URL 长度限制

Internet Explorer 也具有一些限制,只不过这些限制不同于 SharePoint Server 2010 中的限制。即使您使 SharePoint Server 2010 URL 路径长度小于这些限制,但由于添加的参数和 URL 编码,您也可能会遇到 Internet Explorer URL 长度限制。您必须使用最严格的限制作为规划 URL 长度的指导标准。

Internet Explorer 7 和 Internet Explorer 8 具有的最大 URL 长度为 2,083 个 UTF-8 字符,最大路径长度为 2,048 个 UTF-8 字符。但在 Internet Explorer 7 中,在某些环境下,有效的 URL 长度限制为 1024 个 UTF-8 字符,而不是 2083 个 UTF-8 字符。有关 Internet Explorer 中的 URL 长度限制的详细信息,请参阅 Microsoft 知识库文章 208427:Internet Explorer 中的最大 URL 长度为 2,083 个字符 (https://go.microsoft.com/fwlink/?linkid=195568&clcid=0x804)。

重要

除非环境中的所有浏览器都为 Internet Explorer 8,否则使用 1024 个 UTF-8 字符的有效限制。

解决 URL 长度问题

可使用多种方法解决或缓解 SharePoint Server 2010 环境中的 URL 长度问题。以下列表提供了一些建议:

  • 将所有最终用户浏览器升级为 Internet Explorer 8,该浏览器具有较长的 URL 长度限制。

  • 为网站、文件夹和文档使用较短的名称并控制网站和文件夹结构的深度以减小 URL 的长度。

  • 在可能或允许的情况下,为网站、文件夹和文档使用 ASCII 名称。这将避免发生 URL 因编码而增长的情况。

  • 若要降低 SharePoint Server 2010 最终用户因 URL 长度限制而遇到问题的风险,建议您在部署中应用以下有效限制:

    • 256 个 Unicode (UTF-16) 代码单元 - 有效文件路径长度限制,包括域/服务器名称

    • 128 个 Unicode (UTF-16) 代码单元 - 路径组件长度限制