本节讨论 URL 的构成、SharePoint 2010 构建 URL 的方式、URL 的编码和加长以及作为其他 URL 中的参数传递的方式。
SharePoint URL 的构成
SharePoint URL 的总长度等于文件夹或文件路径的长度,包括协议和服务器名称和文件夹或文件名称,以及作为 URL 的一部分包含在内的任何参数。公式如下:
· URL = 协议 + 服务器名称 + 文件夹或文件路径 + 文件夹或文件名 + 参数
例如,下面是 SharePoint 2010 中存储的文件的典型 URL 路径:
http://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 |
URL 编码
URL 编码可确保所有浏览器将正确传输 URL 字符串中的文本。有些浏览器可能会截断或破坏诸如问号 (?)、与号 (&)、左斜线 (/) 和空格之类的字符。SharePoint Foundation 2010 遵守 Internet 工程任务组 (IETF) RFC 3986(该链接可能指向英文页面)(http://go.microsoft.com/fwlink/?linkid=195564&clcid=0x804) 中定义的 URL 编码标准。
如果 SharePoint URL 中包含非标准 ASCII 字符(如高位 ASCII 或双字节 Unicode 字符),则在将它们传递到 Web 浏览器时,会将每个字符都 URL 编码为两个或更多个 ASCII 字符。因此,包含多个高位 ASCII 字符或双字节 Unicode 字符的 URL 可能会比原始未编码的 URL 长。下面的列表提供了倍增系数的示例:
· 高位 ASCII 字符,例如,(!、"、#、$、%、&、[Space]):倍增因数 = 3
· 双字节 Unicode 字符,例如日语、中文、朝鲜语、印地语:倍增系数 = 9
例如,将 URL 路径 http://www.contoso.com/sites/marketing/documents/Shared%20Documents/Promotion/Some%20File.xlsx 中的网站、库、文件夹和文件名称转换为日语时,生成的编码 URL 路径将与以下内容类似:
http://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 可能类似如下:http://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 中,并且编码后会长得多,例如,http://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 Foundation 2010 会截断该 URL 源参数。源参数是对以前访问的页面的引用。截断源参数的结果是用户将返回默认位置,而不是源参数中指定的位置。 不会截断其他参数(如排序顺序、根文件夹参数和视图)。 |
URL 路径长度限制
本节讨论 SharePoint Foundation 2010 和 Internet Explorer 中的不同 URL 长度限制,以及如何规划 URL 路径长度。
SharePoint URL 路径长度限制
本节中的限制适用于 SharePoint Foundation 2010 中的文件夹或文件的 URL 路径的总长度,但不适用于任意参数的长度。此外,这些限制仅适用于未编码的 URL,而不是编码的 URL。SharePoint Foundation 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 您收到“指定的文件或文件夹名称太长”错误消息(http://go.microsoft.com/fwlink/?linkid=195567&clcid=0x804)。
注意: |
了解代码单元 - 大多数情形下,一个 UTF-16 字符等于一个 UTF-16 代码单元。但是,使用大于 U+10000 的 Unicode 码位的字符等于两个 UTF-16 代码单元。这些字符包括但不限于日语或中文代理项对字符。如果您的路径包括这些字符,则 URL 长度将超出 URL 长度限制(不超过 256 或 260 个字符)。 |
Internet Explorer URL 长度限制
Internet Explorer 还具有与 SharePoint Foundation 2010 中的限制不同的限制。尽管可使 SharePoint Foundation 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 个字符 (http://go.microsoft.com/fwlink/?linkid=195568&clcid=0x804)。
重要: |
除非环境中的所有浏览器均为 Internet Explorer 8,否则请遵守 1024 个 UTF-8 字符的有效限制。 |
解决 URL 长度问题
可通过多种方法解决或缓解 SharePoint Foundation 2010 环境中的 URL 长度问题。下面的列表提供了建议:
· 将所有最终用户浏览器升级为 Internet Explorer 8,该版本具有更长的 URL 长度限制。
· 使用更短的网站、文件夹和文档名称,控制网站和文件夹结构的深度,从而缩短 URL 的长度。
· 如果可能或情况允许,请为网站、文件夹和文档使用 ASCII 名称。这样可避免 URL 由于编码而变长的情形。
· 若要降低 SharePoint Foundation 2010 最终用户由于 URL 长度限制而遇到问题的风险,建议在部署中应用以下有效限制:
o 256 个 Unicode (UTF-16) 代码单元 - 有效的文件路径长度限制,包括域/服务器名称
o 128 个 Unicode (UTF-16) 代码单元 - 路径部分长度限制