可以在URL中使用哪些字符?

时间:2011-04-13 13:05:45

标签: url rfc

我有一个应用程序,它接受网址中的所有参数,如下所示:/category/subcategory/sub-subcategory。我希望能够在URL末尾提供额外的参数,例如page-2/order-desc。这会将整个网址变为cat/subcat/sub-subcat{delimiting-character}page-2/order-desc

我的问题是:我可以将哪些字符用作{delimiting-character}。我倾向于选择“:”,因为我知道它肯定不会出现在任何其他地方,但我不知道它是否符合标准,或者至少它是否会在将来给我带来问题。

我记得vimeo使用了这样的东西:vimeo.com/video:{code}但它们似乎改变了这一点。

5 个答案:

答案 0 :(得分:12)

您可以使用字母数字,加上特殊字符“$ -_。+!*'(),” 更多信息:http://www.ietf.org/rfc/rfc1738.txt

另外,请注意在url中不要超过2000个字符

答案 1 :(得分:5)

最新的URI规范是RFC 3986;有关URI的哪些部分允许使用哪些字符的详细信息,请参阅the ABNF

绝对路径部分的格式为:

  path-absolute = "/" [ segment-nz *( "/" segment ) ]
  segment       = *pchar
  segment-nz    = 1*pchar
  pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"
  pct-encoded   = "%" HEXDIG HEXDIG
  unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
  sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
                      / "*" / "+" / "," / ";" / "="

答案 2 :(得分:1)

请参阅http://www.ietf.org/rfc/rfc1738.txt

基本上,您可以使用所有aphanumerics以及$ - _ . + ! * ' ( ) ,

答案 3 :(得分:0)

您可以使用短划线或下划线(经常使用它们)。你可以使用你想要的任何角色,但是例如,空格会在网址中变成%20,所以它们看起来不太好。

答案 4 :(得分:0)

如果您使用破折号或下划线,请记住,破折号被 Google 视为连字符,因此不会改变您的网址的分类方式。下划线被视为一个字符,可能会扰乱您的 SEO。

例如:dash-use = dash use(2 个字); underscore_use = underscore_use(1 个字)