正则表达式网址匹配任何东西,但www

时间:2011-07-15 11:10:19

标签: regex iis-7 url-rewriting

我正在使用IIS7和URL Rewrite模块。

我想使用正则表达式匹配除www。

之外的任何子域

因此...

frog.domain.co.uk = Match
m.domain.co.uk = Match
anything.domain.co.uk = Match
www.domain.co.uk = No match

这样我就可以将某人键入的任何子域重定向回www。

3 个答案:

答案 0 :(得分:0)

你可以在.htaccess中使用301。

答案 1 :(得分:0)

这将符合您的要求:

^(?!=www\.).*

这是www.的负面预测。不确定是否需要尾随.*

答案 2 :(得分:0)

使用此规则 - 如果域名不同,它将重定向到www.exmaple.com域:

<system.webServer>
      <rewrite>
          <rules>
              <rule name="Force www" stopProcessing="true">
                  <match url="(.*)$" />
                  <conditions>
                      <add input="{HTTP_HOST}" pattern="^www\.example\.com" negate="true" />
                  </conditions>
                  <action type="Redirect" url="http://www.example.com/{R:1}" />
              </rule>
          </rules>
      </rewrite>
  </system.webServer>

如果您不想两次输入域名(example.com),您可以稍微优化一下 - 但这是非常小的事情,根据您的情况/配置,它可能是不受欢迎的。