【问题标题】:Underscore in subdomain label.. valid or not?子域标签中的下划线..有效与否?
【发布时间】:2011-06-02 18:03:36
【问题描述】:

由于下划线,Django URLValidator 将引发此网站 URL 的验证错误:

http://beauharnois_bupa.tripod.com/

根据我的阅读,有些人说它不是一个有效的域名,有些人说它是,而且 RFC 似乎说它在子域标签中是合法的,但在主机名中是不合法的。

我的猜测是在子域标签中是合法的,因为上面提到的网站有效..

谁是对的?

【问题讨论】:

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

标签: django dns


【解决方案1】:

下划线不是有效字符,即使在子域中,也会被标记为无效。然而,一些基于子域组件动态路由请求的站点确实允许使用下划线,即使它们在技术上是无效字符。因此,您也许可以导航到该 URL,即使它在技术上是无效的。

RFC 1035 讨论域名的结构。

【讨论】:

    【解决方案2】:

    根据Can (hostname) subdomains have an underscore "_" in it? 应该是合法的。

    在域名中使用下划线是完全合法的。让我引用标准,RFC 2181,第 11 节,“名称语法”:

    【讨论】:

    • 请参阅 cmets 以获得此答案,RFC2181 用于域,而不是主机名。
    • @WaltyYeung 和?我们在这里谈论的是域,而不是主机名。下划线应该是有效的。
    • @blueFast 问题是关于作为主机名一部分的网站子域。
    • @TheincredibleJan 我不同意。问题标题是关于域的。在问题的文本中,他间接谈到了主机名,但问题本身是关于域的。事实上,他甚至在问题中自己解释了这一点:我的猜测是在子域标签中是合法的,因为上面提到的网站有效
    猜你喜欢
    • 2017-01-20
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    相关资源
    最近更新 更多