能够 。 (句点)是URL的路径部分的一部分?

时间:2011-09-26 13:08:48

标签: url rfc

以下网址有效吗?

http://www.example.com/module.php/lib/lib.php

根据http://tools.ietf.org/html/rfc1738部分,网址的hpath元素不能包含“。” (期)。在上面的例子中有'。'在根据RFC1738不允许的“模块”之后。

我是否读错了RFC或者这个RFC是否被另一个RFC取得了成功?其他一些RFC允许'。'在网址(http://tools.ietf.org/html/rfc1808)。

4 个答案:

答案 0 :(得分:39)

我没有看到RFC1738在URL中禁止句点(。)。以下是一些摘录:

hpath          = hsegment *[ "/" hsegment ]
hsegment       = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
uchar          = unreserved | escape
unreserved     = alpha | digit | safe | extra
safe           = "$" | "-" | "_" | "." | "+"

因此,您的问题的答案是:是的,http://www.example.com/module.php/lib/lib.php是有效的网址。

答案 1 :(得分:8)

允许持续时间。请参阅本文档中的“2.3未保留字符”部分: http://tools.ietf.org/html/rfc3986

“URI中允许但没有保留目的的字符称为未保留字符。这些字符包括大写和小写字母,十进制数字,连字符,句点,下划线和波浪号。”

答案 2 :(得分:1)

网址中的句号没有错。如果您在链接中查看语法中的化妆,则会通过“safe”组提及句点,该组包含在uchar

忽略我的回答,亚当斯更好

答案 3 :(得分:1)

正如其他答案所指出的那样,URL中允许使用句点,但是您需要小心。如果在URL路径的一部分中使用一个或两个句点,浏览器会将其视为路径的更改,并且您可能不会获得想要的行为。

例如:

  • www.example.com/foo/./重定向到www.example.com/foo/
  • www.example.com/foo/../重定向到www.example.com/

以下内容将重定向:

  • www.example.com/foo/bar.biz/
  • www.example.com/foo/..biz/
  • www.example.com/foo/biz../