Prerender не обнаруживает токен с IIS с angularjs - PullRequest
0 голосов
/ 09 марта 2019

Я использую вот так мой Web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
      <httpProtocol>
            <customHeaders>
                <add name="X-Prerender-Token" value="MY TOKEN" />
            </customHeaders>
        </httpProtocol>
      <rewrite>
        <rules>
    <rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true">
        <match url="(.*)" />
        <conditions logicalGrouping="MatchAny">
          <add input="{SERVER_PORT_SECURE}" pattern="^0$" />
        </conditions>
        <action type="Redirect" url="https://www.homes247.in/" redirectType="Permanent" />
    </rule>

    <rule name="Enforce canonical hostname" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" matchType="Pattern" pattern="^www\.homes247\.in$" ignoreCase="true" negate="true" />
      </conditions>
      <action type="Redirect" url="https://www.homes247.in/{R:1}" redirectType="Permanent" />
    </rule>

    <rule name="Prerender" stopProcessing="true">
                    <match url="^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent))(.*)" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{HTTP_USER_AGENT}" pattern="baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator" />
                        <add input="{QUERY_STRING}" pattern="(.*)_escaped_fragment_(.*)" ignoreCase="false" />
                    </conditions>
                    <action type="Rewrite" url="https://service.prerender.io/https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" />
    </rule>


          <rule name="AngularJS Routes" stopProcessing="true">
            <match url=".*" />
            <conditions logicalGrouping="MatchAll">
              <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
              <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
              <add input="{REQUEST_URI}" pattern="^/(cms)" negate="true" />
              <add input="{REQUEST_URI}" pattern="^/(crm)" negate="true" />
                  </conditions>
            <action type="Rewrite" url="/" />
         </rule>
         
</rules>
      </rewrite>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
        </staticContent>
    </system.webServer>
</configuration>

Я пытаюсь использовать SEO в социальных сетях.

Для целей SEO, я также хочу отображать данные в источнике просмотра страницы. В этой части я борюсь за источник просмотра страниц.

ДЛЯ EG:

<div><h1>{{Title}}</h1></div>

Я хочу, чтобы заголовок содержался также в виде источника просмотра страницы Как отобразить страницу в виде источника в angularjs.

1 Ответ

0 голосов
/ 10 марта 2019

Вместо:

<httpProtocol>
    <customHeaders>
        <add name="X-Prerender-Token" value="MY TOKEN" />
    </customHeaders>
</httpProtocol>

Можете ли вы попробовать это внутри :

<rule name="Prerender" stopProcessing="true">
    <serverVariables>
        <set name="HTTP_X_PRERENDER_TOKEN" value="MY TOKEN" />
    </serverVariables>
    ...

Возможно, вам потребуется добавить HTTP_X_PRERENDER_TOKEN в качестве разрешенной серверной переменной внутри вашего сервера IIS дляудостоверьтесь, что это отправлено через.Я знаю, что вы можете установить Разрешенные серверные переменные в пользовательском интерфейсе IIS.

...