子域(域名)可以有下划线_吗?


当前回答

个人顶级域名可以在他们认为合适的情况下对域名设置自己的规则和限制,例如适应当地语言。

例如,根据CIRA,加拿大的。ca域名被允许:

字母a ~ z,以及以下重音字符:é ë ê è â à æ ô ù û ü ç î ï。请注意,域名不区分大小写。这意味着大写字母和小写字母之间没有区别(A = A); 数字0123456789和 连字符("-)(虽然不能用于域名的开头或结尾)。

最大长度为63个字符,每个重音字符减少4个字符的限制。

(源)


顺便说一句,这为。ca域提供了大约4个四次方的域名可能性(不包括子域名)。

其他回答

最近cab论坛(*)决定

在任何dNSName条目中包含下划线字符且有效期超过30天的所有证书必须在2019年1月15日之前撤销。https://cabforum.org/2018/11/12/ballot-sc-12-sunset-of-underscores-in-dnsnames/

这意味着您将不再允许在具有ssl/tls证书的域中使用下划线。

(*)证书颁发机构浏览器论坛(CA/浏览器论坛)是主要证书颁发者(定义见下文2.1(a)(1)和(2)节)和互联网浏览器软件和其他使用证书的应用程序供应商(定义见下文2.1(a)(3)节)的自愿聚会。

截至2022年,谷歌搜索中出现了子域名包含下划线的网站。

还有一件事你可能需要知道:如果url的主机或子域部分包含下划线,IE9(尚未测试其他版本)不能编写cookie。

所以要小心。: -)

不,你不能在子域中使用下划线,只能在连字符(破折号)中使用。例如,my-subdomain.agahost.com是可以接受的,my_subdomain.agahost.com是不可以接受的。

以下是我在Java世界的2点看法:

在Spark Scala控制台,使用Java 8:

scala> new java.net.URI("spark://spark_master").getHost
res10: String = null

scala> new java.net.URI("spark://spark-master").getHost
res11: String = spark-master

scala> new java.net.URI("spark://spark_master.google.fr").getHost
res12: String = null

scala> new java.net.URI("spark://spark.master.google.fr").getHost
res13: String = spark.master.google.fr

scala> new java.net.URI("spark://spark-master.google.fr:3434").getHost
res14: String = spark-master.google.fr

scala> new java.net.URI("spark://spark-master.goo_gle.fr:3434").getHost
res15: String = null

这绝对是个坏主意^^