我正在使用 web.config 将所有非 www 重定向到工作正常的 www。如何添加规则以忽略所有子域,以便http://example.com重定向到http://www.example.com但任何子域 http://*.example.com 或http://one.example。 com不重定向到 www。(我无法添加子域列表)。
<rule name="Redirect to www">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.{HTTP_HOST}" redirectType="Permanent"/>
</rule>
我认为 Joey 的回答仅涵盖域以.com结尾的情况,无法处理.co.uk .co.za .com.au等情况。您可以稍微扩展正则表达式,但允许使用不同类型使用[az]的域最终也会重定向子域,根据问题,这是您不想要的。
因此,为了实现这一点,您必须处理您认为在您的情况下可能出现的特定情况。
<rule name="Redirect to www">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^([a-z-]+[.](com|co|ca|net)([.](uk|sg|au)){0,1})$" negate="false" />
</conditions>
<action type="Redirect" url="http://www.{HTTP_HOST}" redirectType="Permanent"/>
</rule>
您可以根据自己的喜好修改正则表达式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句