Greasemonkey/Tampermonkey脚本URL重定向异常:无法移除.html后缀
解决方案:修正URL重定向脚本,同时替换域名与移除.html后缀
我来帮你搞定这个脚本问题,你需要同时完成替换域名后缀和移除.html后缀两个操作,原来的脚本只处理了域名部分,现在我们把两个逻辑整合起来,直接上可运行的完整代码:
// 获取当前页面的完整URL let currentUrl = window.location.href; // 定义需要替换的域名和要移除的后缀规则 const oldDomain = "//ouo.io"; const newDomain = "//ouo.press"; const htmlEnding = /\.html$/; // 匹配URL结尾的.html // 检查当前URL是否包含旧域名,且尚未完成重定向(避免无限循环) if (currentUrl.includes(oldDomain) && !currentUrl.includes(newDomain)) { // 第一步:替换域名后缀 let updatedUrl = currentUrl.replace(oldDomain, newDomain); // 第二步:移除结尾的.html后缀 updatedUrl = updatedUrl.replace(htmlEnding, ""); // 跳转到修正后的URL window.location.href = updatedUrl; }
代码逻辑拆解:
- 首先获取完整的当前页面URL(而不是仅取host),这样能保留路径部分用于后续处理
- 用
includes做双重判断:既确保当前是旧域名的页面,又防止跳转到新域名后脚本重复执行造成无限循环 - 域名替换:直接把
//ouo.io替换为//ouo.press,精准定位域名部分 - 移除.html后缀:用正则表达式
/\.html$/匹配URL结尾的.html($表示字符串末尾),替换为空字符串,这样不会误删路径中间可能出现的.html字符
额外说明:
如果你的场景中URL可能存在大小写的.html(比如.HTML),可以把正则改成/\.html$/i,加上i标记表示忽略大小写匹配。
内容的提问来源于stack exchange,提问作者rjmolina13
相关产品推荐
相关产品推荐

