rel="me"需双向HTTPS互链才生效,单向添加无效;必须两端均用完整URL、无重定向、可公开访问,且验证器能解析原始HTML中纯rel="me"标签。

rel="me" 不是浏览器或搜索引擎识别的通用关系值,它专属于 IndieWeb 生态,用于人工验证跨平台账号所有权——但必须配合特定流程和结构,否则纯写这个属性毫无作用。
为什么 rel="me" 不能单独生效
它不是 HTML 标准中定义的全局语义关系(如 noopener 或 noreferrer),浏览器不会解析、不触发任何行为,搜索引擎也不索引或信任。它的价值完全依赖两端互相指向:你主页上的 <a href="https://twitter.com/you" rel="me">Twitter</a>,必须对应 Twitter 个人资料页里也有一条指向你主页的 <a href="https://yoursite.com" rel="me">My site</a>。缺一不可。
- 单向写
rel="me"→ 等于没写,验证工具(如indieauth.com或microsub.net)直接失败 - 目标链接不是 HTTPS 或返回 4xx/5xx → 验证中断
- 目标页面未公开可爬(如 robots.txt 禁止、登录墙、noindex)→ 验证器无法访问,判定无效
rel="me" 必须满足的三个硬性条件
IndieWeb 社区定义的验证逻辑非常严格,任意一条不满足都会导致关联失败:
- 两端链接都必须使用
rel="me",且href值互为对方的**完整、可访问、可解析的 URL**(不能是短链、跳转页、带 UTM 参数的链接) - 两个页面都必须通过 HTTPS 提供服务(HTTP 被主流验证器拒绝)
- 任一端页面若含多个
rel="me",所有目标 URL 必须能被同一验证器统一解析并闭环匹配;混入非本人账号(如公司号、粉丝号)会污染验证结果
常见验证失败场景与修复方式
实际部署中最容易卡在中间环节,而不是语法错误:
立即学习“前端免费学习笔记(深入)”;
-
GitHub 个人主页不支持
rel="me"验证:GitHub Pages 默认不开放自定义rel属性(尤其当用 Jekyll 模板时,<a>标签可能被渲染引擎过滤)。解决方案是手动编辑生成后的 HTML,或改用静态站点生成器(如 Hugo)输出原始标签 -
Mastodon 实例返回 302 重定向但未保留
rel="me":很多实例把个人资料页设为登录后可见,或前端路由拦截了直接访问。需确认curl -I https://mastodon.social/@you返回的是 200 + 正确 HTML,而非跳转或空响应 -
验证器提示 “No me links found” 却明明写了:检查是否用了
rel="me nofollow"—— 多值写法合法,但部分老验证器只认孤立的rel="me";更稳妥写法是rel="me"单独成项,其他关系(如nofollow)另起一个<a>
验证后仍无法被识别?重点检查 DNS 和 TLS 配置
即使两端 HTML 完全合规,验证也可能静默失败:
- 你的域名 DNS 中未配置
_host-meta或.well-known/host-meta(虽非强制,但部分客户端优先查此路径) - 证书链不完整(如缺少 intermediate CA),导致某些 IndieWeb 工具(如 Quill 编辑器)的 HTTP 客户端握手失败
- 服务器返回的
Content-Type不是text/html(例如误配为application/xhtml+xml),部分验证器拒绝解析
最可靠的验证方式是用 curl -s https://yoursite.com | grep 'rel="me"' 和 curl -s https://other-site.com/@you | grep 'rel="me"' 双向确认原始 HTML 中存在且 URL 匹配——所有高级工具底层都做这件事,只是加了网络超时和重试逻辑。


















