Правила перенаправления IIS для статических доменов содержимого - PullRequest
1 голос
/ 24 июня 2009

Я написал несколько правил для наших поддоменов статического контента, чтобы при входе в IIS они перенаправлялись на наш www. субдомен.

Причина этого в том, что у нас есть несколько поддоменов, проиндексированных Google. Однако, когда я создаю URL, я все еще могу просматривать файлы на img1.mydomain.com с кодом состояния 200, а не 301, как я ожидал.

Я что-то не так делаю?

<!-- Force img domains and non-www users to point at www. -->
<rule name="redirectImgJsAndNonWww" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^img1.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^img2.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^img3.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^js1.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^js2.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^js3.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^mydomain.com$" />
  </conditions>
  <action type="Redirect" url="www.mydomain.com/{R:0}" redirectType="Permanent" />
</rule>

Большое спасибо за любую помощь.

Обновление: Похоже, мне не хватало флага логической группировки, который устанавливал мои правила на "MatchAll".

<rule name="Redirect to WWW" stopProcessing="true">
  <match url=".*" />
  <conditions logicalGrouping="MatchAny">
    <add input="{HTTP_HOST}" pattern="^mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^img1.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^img2.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^img3.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^js1.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^js2.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^js3.mydomain.com$" />
  </conditions>
  <action type="Redirect" url="http://www.mydomain.com/{R:0}" redirectType="Permanent" />
</rule>

1 Ответ

1 голос
/ 29 июня 2009

На вопрос уже дан ответ.

Похоже, мне не хватало флага логической группы, который устанавливал мои правила на "MatchAll".

<rule name="Redirect to WWW" stopProcessing="true">
  <match url=".*" />
  <conditions logicalGrouping="MatchAny">
    <add input="{HTTP_HOST}" pattern="^mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^img1.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^img2.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^img3.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^js1.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^js2.mydomain.com$" />
    <add input="{HTTP_HOST}" pattern="^js3.mydomain.com$" />
  </conditions>
  <action type="Redirect" url="http://www.mydomain.com/{R:0}" redirectType="Permanent" />
</rule>
...