子域名标签中的下划线.. 是否有效?

3
Django的URLValidator会因为下划线而导致该网站URL无法通过验证,从而引发验证错误。

http://beauharnois_bupa.tripod.com/

根据我所读的一些资料,有人说这不是一个有效的域名,有人则认为是有效的,RFC似乎表明它在子域标签中是合法的,但在主机名中不合法。

我的猜测是它在子域标签中是合法的,因为上述网站可以正常工作。

谁是正确的?


根据大多数标准,这是一个非法字符,但是每个浏览器都支持它,并且有一些主要的网站在使用它们。因此,为了实际目的,任何旨在处理真实世界URL的解析器/验证器都应该支持它们。 - smola
1
@smola 请给出一个“使用它们的主要网站”的示例!(如果不再可用,archive.org也可以) - The incredible Jan
2个回答

4
下划线不是有效的字符,即使在子域名中也是如此,因此它将被标记为无效。但是,一些根据子域组件动态路由请求的站点允许使用下划线,尽管它们在技术上是无效字符。因此,您可能能够访问该URL,即使它在技术上无效。

RFC 1035 讨论了域名的结构。


4

2
请注意,RFC2181适用于域名而非主机名。请查看此答案的注释。 - Walty Yeung
2
@WaltyYeung 还有呢?我们在谈论域名,而不是主机名。因此下划线应该是有效的。 - blueFast
@blueFast 这个问题是关于网站子域名的,它们是主机名的一部分。 - The incredible Jan
1
@TheincredibleJan 我不同意。问题标题是关于域名的。在问题的文本中,他间接谈到了主机名,但问题本身是关于域名的。事实上,他甚至在问题中自己解释了:我猜测,在子域标签中它是合法的,因为上述提到的网站可以正常工作 - blueFast

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