IIS重定向静态内容域的规则

时间:2009-06-24 09:35:29

标签: asp.net iis-7 url-rewriting

我已经为我们的静态内容子域写了一些规则,这样当它们进入IIS时,它们会被重定向到我们的www。子域。

原因是我们有几个子域被Google编入索引。但是,当我创建网址时,我仍然可以在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>

非常感谢您的帮助。

更新:看来我错过了logicalGrouping标志,该标志将我的规则设置为“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 个答案:

答案 0 :(得分:1)

现在已经回答了这个问题。

看来我错过了logicalGrouping标志,它将我的规则设置为“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>