LinkedIn短链接附加%C2%A0致IIS7.5上WordPress出现404错误求助
这个问题我之前帮同行排查过类似案例,核心就是那个%C2%A0——它是UTF-8编码的非中断空格(对应HTML里的 ),LinkedIn抓取页面时要么读取到了带隐藏空格的URL,要么你的页面输出里藏了这个空格,导致分享链接多了尾巴。给你几个实用的排查和解决方向:
检查Open Graph(OG)标签和规范链接
LinkedIn优先读取页面的og:url和rel="canonical"标签来获取分享URL。打开浏览器开发者工具(F12)查看页面源码,搜索这两个标签,仔细检查URL末尾有没有看不见的非断空格。如果是用Yoast这类SEO插件生成的标签,去插件设置里确认文章的规范URL没有多余空格;如果是主题自定义输出的,检查主题模板文件(比如header.php)里的链接输出代码,确保没有不小心加了 或者直接的空格。添加IIS URL重写规则拦截末尾空格
既然刷新WordPress固定链接没用,可以直接在IIS的web.config里加一条重写规则,自动移除URL末尾的非断空格(兼容普通空格),把错误链接301重定向到正确地址。规则代码如下:<rule name="Remove Trailing Spaces" stopProcessing="true"> <match url="^(.*)(\x20|\xC2\xA0)$" /> <action type="Redirect" url="{R:1}" redirectType="Permanent" /> </rule>把这段代码加到
web.config的<rewrite><rules>节点下,这样不管是普通空格还是非断空格结尾的URL,都会被自动修正到正确路径。强制刷新LinkedIn的分享缓存
哪怕你修复了页面问题,LinkedIn可能还存着旧的缓存链接。用LinkedIn官方的链接调试工具重新抓取你的文章URL,更新它缓存里的页面信息,这样新的分享链接就会用正确的地址了。排查文章内容里的隐藏空格
偶尔编辑文章时,标题或者自定义字段末尾会不小心输入非断空格(比如输入法误触),虽然固定链接看起来正常,但页面渲染时可能把这个空格带到了分享链接里。可以在WordPress编辑器里切换到文本模式,检查文章标题、自定义字段的末尾有没有多余的空格或者 代码,有的话直接删掉。
内容的提问来源于stack exchange,提问作者oratoran

