网站<a>标签href自动添加域名前缀问题咨询
嘿,这个问题我之前碰到过好几次,大概率是下面这几个原因导致的,你可以逐一排查:
相对路径被浏览器误判:你写的
href="check.com"属于无协议的相对路径,浏览器会默认把它当作当前域名下的子资源路径,所以自动拼接上了mysite.com。如果要指向外部网站,必须加上完整的协议头(http://或https://),正确写法应该是<a href="https://check.com">check</a>,这样浏览器才会识别为绝对路径,直接跳转到目标域名。服务器/框架的URL重写配置:如果你用了Nginx、Apache这类服务器,或者React、Vue、Next.js这类前端框架,可能配置了强制的URL重写或路由规则。比如Nginx的
rewrite指令、框架里的baseURL配置错误,把所有非绝对路径的链接都当成了站内路由,自动拼接当前域名。可以检查服务器的配置文件或者框架的路由设置。自定义JS脚本的自动处理:有些项目里会有自定义的JavaScript代码,用来统一处理页面内的链接。比如遍历页面所有
<a>标签,给没有协议头的href自动加上当前域名。你可以全局搜索项目里有没有类似document.querySelectorAll('a')然后修改href属性的代码块。CMS系统的链接格式化规则:如果你的网站是用WordPress、Drupal这类CMS搭建的,部分插件或者系统默认设置会把所有非绝对路径的链接转换成站内链接。可以去CMS的链接设置面板,或者相关SEO、链接管理插件里看看有没有开启“自动转换站内链接”这类功能。
内容的提问来源于stack exchange,提问作者DevMan

