子域(域名)可以有下划线_吗?
当前回答
这里给出的大多数答案都是错误的。这是完全合法的 域名中的下划线。让我引用标准,RFC 2181,第11节,“名称语法”:
DNS本身对特定的标签只有一个限制 可用于标识资源记录。那一个 限制涉及到标签的长度和完整 的名字。[…DNS协议的实现不能放置任何 对可使用标签的限制。特别是DNS 服务器不能因为一个区域包含标签而拒绝提供服务 这对于某些DNS客户端程序来说可能是不可接受的。
请参见原始DNS规范,RFC 1034,第3.5节 "首选名称语法"但请仔细阅读。
带下划线的域在野外非常常见。检查_jabber._tcp.gmail.com或_sip._udp.apnic.net。
这里提到的其他RFC处理不同的事情。最初的 问题是关于域名的。如果问题是关于主持人的 名称(或者对于包含主机名的url),则为 不同的是,相关的标准是RFC 1123,章节2.1“主机 名称和数字”,将主机名限制为 letters-digits-hyphen。
其他回答
截至2022年,谷歌搜索中出现了子域名包含下划线的网站。
个人顶级域名可以在他们认为合适的情况下对域名设置自己的规则和限制,例如适应当地语言。
例如,根据CIRA,加拿大的。ca域名被允许:
字母a ~ z,以及以下重音字符:é ë ê è â à æ ô ù û ü ç î ï。请注意,域名不区分大小写。这意味着大写字母和小写字母之间没有区别(A = A); 数字0123456789和 连字符("-)(虽然不能用于域名的开头或结尾)。
最大长度为63个字符,每个重音字符减少4个字符的限制。
(源)
顺便说一句,这为。ca域提供了大约4个四次方的域名可能性(不包括子域名)。
这里给出的大多数答案都是错误的。这是完全合法的 域名中的下划线。让我引用标准,RFC 2181,第11节,“名称语法”:
DNS本身对特定的标签只有一个限制 可用于标识资源记录。那一个 限制涉及到标签的长度和完整 的名字。[…DNS协议的实现不能放置任何 对可使用标签的限制。特别是DNS 服务器不能因为一个区域包含标签而拒绝提供服务 这对于某些DNS客户端程序来说可能是不可接受的。
请参见原始DNS规范,RFC 1034,第3.5节 "首选名称语法"但请仔细阅读。
带下划线的域在野外非常常见。检查_jabber._tcp.gmail.com或_sip._udp.apnic.net。
这里提到的其他RFC处理不同的事情。最初的 问题是关于域名的。如果问题是关于主持人的 名称(或者对于包含主机名的url),则为 不同的是,相关的标准是RFC 1123,章节2.1“主机 名称和数字”,将主机名限制为 letters-digits-hyphen。
不管主机名和域名的讨论如何,在url的主机部分使用下划线肯定是一个非常糟糕的主意。它会给你带来悲伤。它可能在浏览器中很好地工作,但在最近的一个案例中,我遇到了一个应用程序拒绝使用*.s3的完全有效的通配符证书建立tls连接。Amazonaws.com,因为通配符主机名部分有一个下划线,并且不生效。我相信底层库使用了openssl。
不,你不能在子域中使用下划线,只能在连字符(破折号)中使用。例如,my-subdomain.agahost.com是可以接受的,my_subdomain.agahost.com是不可以接受的。
推荐文章
- HTML表单上的默认提交按钮是如何确定的?
- 如何使用谷歌应用程序引擎与我自己的裸域(不是子域)?
- 如何列出所有DNS记录?
- 没有href属性的锚标记安全吗?
- CSV文件可以有注释吗?
- 当使用带有子域的邮差时,出现“无法得到任何响应”的响应
- (域名)子域名中可以有下划线“_”吗?
- JSON语法是否允许在对象中重复键?
- 错误“getaddrinfo EAI_AGAIN”的原因是什么?
- 我如何得到一个域的所有子域的列表?
- __PRETTY_FUNCTION__, __FUNCTION__, __func__之间的区别是什么?
- iframe被认为是“不好的做法”吗?
- Windows主机文件中的通配符
- 编码约定-命名枚举
- 如何找到域名的权威名称服务器?