Я пытаюсь перевести это правило переписывания apache в правила web.config, но я не могу заставить его работать.Перевод правил переписывания apache в IIS web.config
В основном он проверяет агента пользователя и перенаправить средства на URL при условии
# allow social media crawlers to work by redirecting them to a server-rendered static version on the page
RewriteCond %{HTTP_USER_AGENT (facebookexternalhit/[09]|Twitterbot|Pinterest|Google.*snippet)
RewriteRule qs/(\d*)$ http://sitetocrawl.com/doc?id=$1 [P]
Это то, что я до сих пор. Однако я не могу понять, как уловить параметр querystring url. В основном текстовая строка после http://example.com/qs/parameter
<rule name="Social Rewrite" patternSyntax="ECMAScript" stopProcessing="true">
<match url="urltomatchpattern" ignoreCase="true" negate="false" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_USER_AGENT}" pattern="facebookexternalhit/[0-9]|Twitterbot|Pinterest|Google.*snippet" />
</conditions>
<action type="Redirect" url="http://sitetocrawl.com/doc?parameter" appendQueryString="true" redirectType="Found" />
</rule>
EDIT:
Я попробовал со многими вариантами простых правил, как перенаправление/переписать, когда конкретный агент пользователя запрашивает сайт (в моем случае, в facebook гусеничных). Но я даже не могу заставить эти правила работать. Я отладки с помощью Facebook OG debugger
<rule name="Rule1" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_USER_AGENT}" pattern="facebookexternalhit/1.1|Facebot" />
</conditions>
<action type="Redirect" url="new url here" />
</rule>
Вы пишете правила самостоятельно или следуете инструкциям здесь: http://www.iis.net/learn/extensions/url-rewrite-module/importing-apache-modrewrite-rules – astaykov
Я пишу мой собственный ... У меня только экспресс-служба IIS, которая поставляется с установленной Visual Studio и не удалось найти инструмент импорта. – Josef