2016-03-14 4 views
0

У нас есть сайт, закодированный с помощью AngularJS. Поскольку большая часть сайта создается через javascript, поисковые системы не могут индексировать страницы. Итак, мы установили Prerender.io для индексации нашего сайта. Он делает это отлично, и я могу просматривать rawhtml со своего сайта.IIS 6.0 не передаст запросы Боба Prerender.io

Если я ввожу следующее в браузер, Prerender.io будет правильно отображать rawhtml:
http://service.prerender.io/http://www.swiftlearning.com/?_escaped_fragment_=/login

Проблема заключается в том, что я не могу получить IIS 6 отправлять запросы к ботам пререндеру.

Когда я беру этот URL-адрес: http://www.swiftlearning.com/#!/login и замените #! с _escaped_fragment_ = приводит к http://www.swiftlearning.com/?_escaped_fragment_=/login

IIS возвращает начальную страницу веб-сайта и отображает следующий URL: http://www.swiftlearning.com/?_escaped_fragment_=/login#!/home

У меня есть установки Wireshark для захвата трафика. Он показывает, что запрос приходит, а затем ответ приходит с веб-сайта, а не prerender.io.

Я создал файл web.config (с тем, что я уже нашел на StackOverflow) со следующей конфигурацией.

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <httpProtocol> 
      <customHeaders> 
       <add name="X-Prerender-Token" value="dTaPu5H97XTS618Y8edm" /> 
      </customHeaders> 
     </httpProtocol> 
     <httpModules> 
      <add name="Prerender" type="Prerender.io.PrerenderModule, Prerender.io, Version=1.0.0.2, Culture=neutral, PublicKeyToken=null"/> 
     </httpModules> 
     <rewrite> 
      <rules> 
       <!--# Only proxy the request to Prerender if it's a request for HTML--> 
       <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" /> 
         <add input="{QUERY_STRING}" pattern="_escaped_fragment_" ignoreCase="false" /> 
        </conditions> 
        <action type="Rewrite" url="http://service.prerender.io/http://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" /> 
       </rule> 
       <rule name="Redirect To Index" stopProcessing="true"> 
        <match url=".*" /> 
        <conditions> 
         <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
         <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
        </conditions> 
        <action type="Rewrite" url="/" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.web> 
</configuration> 

Надеюсь, что я не смутил проблему с моим объяснением. Любая помощь будет оценена.

Спасибо,

Дана

ответ

0

Ну, получается, что IIS 6 не обрабатывает редиректы. Переадресация стала возможной с IIS 7. Таким образом, это сводится к обновлению нашего сервера, который по разным причинам очень внушителен или какой-то взлом.

Спасибо, что посмотрели на вопрос.

Я не могу выбрать это как ответ до завтра.

Dana