我有一个Angular 2
SPA
网站,并且社交媒体元标签显示默认的首页meta
标签内容而不是已加载的页面时出现了问题。对于Google来说,这不是问题,因为他们的机器人实际上在运行JS,但是Facebook和Twitter不在运行JS,他们只是下载页面。
对我来说,最简单的解决方法是使用this comment中的选项3,基本上与以下user-agent
标头值匹配:facebookexternalhit
,Facebot
,{{ 1}},甚至是Twitterbot
,并向他们显示一个页面,其中包含LinkedInBot
标签,并填充了正确的内容。
因此,URL需要保持不变,但路由需要继续到类似如下的页面:
meta
这也需要在http://www.example.com/api/GetSocialMediaMetas?url=http://www.example.com/url-of-the-page-that-was-actually-requested
级别上发生,因此我认为Web.config
可以解决这个问题,但是我很难找到任何参考来帮助我使其正常工作,这是我的尝试到目前为止:
rewrite rule
我使用 <rule name="Rewrite for Social Media" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{USER_AGENT}" pattern="facebookexternalhit,Facebot,Twitterbot" negate="false" />
</conditions>
<action type="Rewrite" url="/api/GetSocialMediaMetas?url={R:1}" />
</rule>
修改了PostMan
标头,但显然这不起作用,或者我不会问这个问题,也许比我聪明的人可以看到我出了错吗? / p>