ASP.NET Web.config переписать соответствие правила по заголовку - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть веб-сайт Angular 2 SPA, и у меня возникла проблема с метатегами социальных сетей, показывающими содержимое тега домашней страницы meta по умолчанию вместо загруженной страницы.Это не проблема с Google, так как их бот на самом деле запускает JS, но Facebook и Twitter не запускают JS, они просто скачивают страницу.

Для меня самый простой способ решить это - использовать опцию3 из этого комментария , в основном совпадают с этими user-agent значениями заголовка: facebookexternalhit, Facebot, Twitterbot, возможно даже LinkedInBot и показывают им страницу с тегами metaзаполнены нужным материалом.

Таким образом, URL-адрес должен оставаться прежним, но маршрут должен продолжаться до страницы, такой как:

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 Я изменил заголовок user-agent, но, очевидно, это не работает, или я бы не стал задавать этот вопрос, возможно, кто-то умнее меня в этом вопросе может увидеть, где я ошибся?

...