ASP.NET Web.config标题重写规则匹配

时间:2018-09-24 08:04:30

标签: asp.net angular url-rewriting single-page-application

我有一个Angular 2 SPA网站,并且社交媒体元标签显示默认的首页meta标签内容而不是已加载的页面时出现了问题。对于Google来说,这不是问题,因为他们的机器人实际上在运行JS,但是Facebook和Twitter不在运行JS,他们只是下载页面。

对我来说,最简单的解决方法是使用this comment中的选项3,基本上与以下user-agent标头值匹配:facebookexternalhitFacebot,{{ 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>

0 个答案:

没有答案