java - 如何删除 URL 的子域部分

标签 java

我正在尝试删除子域并仅保留域名和扩展名。

很难找到子域,因为我不知道 url 中有多少个点。例如,某些网址以 .com 结尾,有些网址以 .co.uk 结尾。

如何安全地删除子域,以便 foo.bar.com 变为 bar.com,foo.bar.co.uk 变为 bar.co.uk

if(!rawUrl.startsWith("http://")&&!rawUrl.startsWith("https://")){
    rawUrl = "http://"+rawUrl;
}
String url = new java.net.URL(rawUrl).getHost();
String urlWithoutSub = ???

最佳答案

您需要的是公共(public)后缀列表,例如 https://publicsuffix.org/ 中提供的列表。 。基本上,没有算法可以告诉您哪些后缀是公共(public)的,因此您需要一个列表。而且你最好使用一个公共(public)且维护良好的。

关于java - 如何删除 URL 的子域部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25586505/

相关文章:

java - Google 数据存储查询时间长

java - 有没有一种方法可以使用多个 LWJGL 上下文

java - 带有 ServletContextListener 的线程池

java - 如何在 Spring 5 MVC 中将 FilePart 转换为 byte[]

java - 想要提高编程的数学技能

java - Eclipse M2E/变更单和导出

java - WindowAdapter 是 Java Swing 中的适配器模式实现吗?

java - Google App Engine Java,使用 URL 重写过滤器进行 301 重定向

java - Collection.sort in 是如何实现的?

java - 如何在 Java 中将日历增加 7 天直到下个月,然后从开始日期开始一年?