Создать глобальное правило перезаписи IIS 7 - PullRequest
4 голосов
/ 04 августа 2010

У меня есть записи с подстановочными знаками A (* и *.*) для моего домена, указывающие на мою машину разработчика. По сути, любой поддомен, который не является www, указывает на мою машину разработчика (кроме корневого).

Я никогда не хочу, чтобы моя машина разработки была индексированной или «сопровождаемой» поисковыми системами.

Я хотел бы просто настроить global правило перезаписи URL следующим образом:

<rule name="Global robots.txt rewrite" stopProcessing="true">
    <match url="^robots\.txt" ignoreCase="true" />
    <action type="Rewrite" url="http://localhost/robots.txt" />
</rule>

Правило выше не будет работать; хотя действует следующее правило перенаправления:

<rule name="GLobal robots.txt redirect" stopProcessing="true">
    <match url="^robots\.txt" ignoreCase="true" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^localhost$" negate="true" />
    </conditions>
    <action type="Redirect" url="http://localhost/robots.txt" />
</rule>

.. но я не уверен, что 301 перенаправление на robots.txt действительно работает для поисковых систем.

Любые идеи о том, как добиться того, что я пытаюсь?

1 Ответ

3 голосов
/ 07 августа 2012

Это похоже на действительно старый пост, но я нашел это при поиске ответа.Вы можете достичь этого, используя правило, которое выглядит следующим образом:

<rule name="Robots Disallow" stopProcessing="true">
   <match url="robots.txt" />
   <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
     <add input="{HTTP_HOST}" pattern="www" negate="true" />
   </conditions>
   <action type="Rewrite" url="robots_disallow.txt" />
</rule>

Файл robots_disallow.txt имеет следующее:

User-agent: *
Disallow: /
...