/**
* 将跳转链接修正为完整链接
*
* @param site 当前站点链接
* @param url 待修正链接
* @return 完整链接
*/
public static String modifyUrl(String site, String url) {
String http = "";
if (site.startsWith("http://")) {
http = "http://";
site = site.substring(7);
} else if (site.startsWith("https://")) {
http = "https://";
site = site.substring(8);
}
if (url.startsWith("http") || url.startsWith("mailto:")) {
return url;
} else {
if (!site.contains("/")) {
if (url.startsWith("//"))
url = url.substring(2);
else if (url.startsWith("/"))
url = site + url;
else if (url.startsWith("./"))
url = site + url.substring(1);
else if (url.startsWith("../"))
url = site + url.substring(2);
else if (url.startsWith("?"))
url = site + url;
else
url = site + "/" + url;
} else if (site.contains("?")) {
return modifyUrl(http + site.substring(0, site.lastIndexOf("?")), url);
} else {
if (url.startsWith("//"))
url = url.substring(2);
else if (url.startsWith("/"))
url = site.substring(0, site.indexOf("/")) + url;
else if (url.startsWith("./"))
url = modifyUrl(http + site, url.substring(2));
else if (url.startsWith("../"))
url = site.substring(0, site.lastIndexOf("/", site.lastIndexOf("/") - 1)) + url.substring(2);
else if (url.startsWith("?"))
url = site + url;
else
url = site.substring(0, site.lastIndexOf("/") + 1) + url;
}
}
return http + url;
}
302修正跳转链接逻辑代码
skyyemperor
·2023-05-12
·255 次阅读
Comments | 0 条评论