使用“www”重写IIS7无法正常工作

时间:2012-11-26 10:24:53

标签: asp.net redirect iis-7 global-asax url-rewrite-module

我的重定向规则存在问题。我希望我的网页会有“www”前缀。它适用于某些页面,而在其他页面上它根本不做任何事情。这是我的规则:

    <rule name="WWW Rewrite" enabled="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" negate="true"
          pattern="^www\.([.a-zA-Z0-9]+)$" />
      </conditions>
      <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}"
        appendQueryString="true" redirectType="Permanent" />
    </rule>

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

你可以尝试这个^(www。)?([。a-zA-Z0-9] +)$

如果页面当前没有“www”,则会匹配。并且如果它确实或不相符应该匹配。

您需要编辑此操作以获取第二组 <action type="Redirect" url="http://www.{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />

答案 1 :(得分:0)

这是您的规则,您只需检查您的主机是否与预期的主机不匹配,然后重定向到正确的网址。

  <rules>
    <rule name="Canonical Host Name" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" negate="true" pattern="^www\.domain\.com$" />
      </conditions>
      <action type="Redirect" url="http://www.domain.com/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>