在URL中使用逗号有时会破坏URL吗?

8
有人知道在使用逗号的SEO友好URL中是否存在任何问题吗?我正在使用一些软件,其中的SEO友好URL使用了很多逗号;但我可以100%确定我曾经看到过一些程序/平台无法正确识别URL,并在第一个逗号之后切断URL的“链接”。
我刚刚在Thunderbird、Gmail、Hotmail和一个SMF论坛上进行了测试,没有任何问题;但是我知道我以前见过这个问题。
所以我的问题是,是否有特定的原因会导致某些平台停止使用逗号链接URL?例如逗号后面的某个字符?
1个回答

19

会有无数的实现在那个点切断自动链接。就像许多其他字符一样。但这不是因为使用这些字符,而是因为实现错误/不完整所致。

例如看看这个网站 Stack Overflow。在手动输入/粘贴此URL时,它将在 * 处截断链接(参见错误; 如果修复了,在此处查看屏幕截图):

但是,当使用超链接语法时,它可以正常工作:

星号 * 字符是 HTTP URL 路径中允许的,因此链接检测应该已经识别出第一个 URL,而不是在 * 出现时中断它。


关于逗号:

逗号是保留字符,其意义与 URL 路径 有关(我加粗了重点):

除了在分层路径中的点节段外,通用语法认为路径节段是不透明的。URI 生成应用程序通常使用一个节段内允许的保留字符来划分方案特定或解引用处理程序特定的子组件。例如,分号(“;”)和等号(“=”)保留字符经常用于划分适用于参数和参数值的参数。

那个片段中,逗号(",")保留字符通常用于类似的目的。例如,一个URI生产者可能会使用像"name;v=1.1"这样的片段来表示对"name"版本1.1的引用,而另一个可能会使用像"name,1.1"这样的片段来表示相同的内容。

因此,如果您不打算将逗号用作保留字符的功能,您可能需要使用%2C进行百分比编码。用户从其浏览器地址栏复制此类URL时应将其粘贴为编码形式,因此它几乎可以在任何地方工作。

然而,特别是因为它是保留字符,未编码的形式也应该可以工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接