我认为在URI中使用冒号是“非法的”。然后我看到vimeo.com正在使用http://www.vimeo.com/tag:sample.
答案 0 :(得分:25)
URI路径中允许使用冒号。但是在使用冒号编写相对URI路径时需要小心,因为在使用时不允许这样做:
<a href="tag:sample">
在这种情况下,tag
将被解释为URI的方案。相反,你需要像这样写:
<a href="./tag:sample">
答案 1 :(得分:10)
另请注意the difference between Apache on Linux and Windows。 Windows上的Apache不允许在URL的第一部分使用冒号。但是Linux没有问题。
答案 2 :(得分:2)
网址中是否允许使用冒号?
例如,您可以拥有这样的网址:
您可以将其正常用作绝对URL或一些相对变体:
<a href="https://en.wikipedia.org/wiki/Template:Welcome">Welcome Template</a>
<a href="/wiki/Template:Welcome">Welcome Template</a>
<a href="wiki/Template:Welcome">Welcome Template</a>
但这可能无效:
<a href="Template:Welcome">Welcome Template</a>
因为这里的“模板”会被误认为是协议方案。 你必须使用:
<a href="./Template:Welcome">Welcome Template</a>
使用层次结构中同一级别页面的相对链接。
参见RFC 3986,第3.3节:
路径组件包含通常以分层结构组织的数据 表单,以及非分层查询组件中的数据 (第3.4节),用于识别范围内的资源 URI的方案和命名权限(如果有的话)。路径终止 通过第一个问号(“?”)或数字符号(“#”)字符,或 在URI的末尾。
如果URI包含授权组件,那么路径组件 必须为空或以斜杠(“/”)字符开头。如果是URI 不包含权限组件,则路径无法启动 带有两个斜杠字符(“//”)。 此外,还有一个URI引用 (4.1节)可以是相对路径参考,在这种情况下 第一个路径段不能包含冒号(“:”)字符。 ABNF 需要五个单独的规则来消除这些情况的歧义,只有一个 它将匹配给定URI引用中的路径子字符串。我们 使用通用术语“路径组件”来描述URI子串 解析器与这些规则之一匹配。 [强调补充]
使用冒号的示例网址: