我有一个使用在IIS Web服务器上运行的AngularJS的网站。由于所有网站的信息都是通过AJAX请求的,因此社交媒体抓取工具无法解析该数据。因此,为了防止社交媒体显示空表达式,例如:{{helloWorld}},我正在尝试将某些社交媒体抓取工具重定向到我的Web应用程序中的特定部分,该部分可以为社交媒体抓取工具预呈现该页面。 / p>
我使用Apache .htaccess文件成功完成了这项工作:
RewriteCond %{HTTP_USER_AGENT} (facebookexternalhit|Facebot|Twitterbot)
RewriteRule ^(.*)$ http://myapp.com/prerender?url=%{REQUEST_URI} [P]
我想知道的是我如何使用IIS完成同样的事情。基本上我想配置一个Web.Config文件与上面等效的重写规则。 Importante,在上面的脚本中,我使用[P]标志来信息Apache访问prerender页面而不知道重定向已经发生的爬虫。
关于我如何做到这一点的任何想法?
答案 0 :(得分:0)
我能够解决我的问题。
要简单地将URL重写到同一域中的另一个页面,必须在IIS中启用URL Rewrite。为了重写到另一个域,您不仅需要URL重写,还需要在服务器中启用应用程序请求路由(反向代理)。
然后在web.config中使用以下示例规则:
<rewrite>
<rules>
<rule name="RewriteTest" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="%{HTTP_USER_AGENT" pattern="(facebookexternalhit/[0-9]|Facebot|Twitterbot/[0-9])" />
</conditions>
<action type="Rewrite" url="http://example.com/{R:1}" />
</rule>
</rules>
</rewrite>
希望这有帮助。