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


当前回答

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

其他回答

以下是我在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

这绝对是个坏主意^^

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

所以要小心。: -)

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

不管主机名和域名的讨论如何,在url的主机部分使用下划线肯定是一个非常糟糕的主意。它会给你带来悲伤。它可能在浏览器中很好地工作,但在最近的一个案例中,我遇到了一个应用程序拒绝使用*.s3的完全有效的通配符证书建立tls连接。Amazonaws.com,因为通配符主机名部分有一个下划线,并且不生效。我相信底层库使用了openssl。

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