我找到了这个用于检查网址的web.config代码,看看它是否遗漏了www。如果是,那么它将用户重定向到www。 URL
<rewrite>
<rules>
<clear />
<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>
</rules>
</rewrite>
然而,我需要做相反的事情并且我一直在用它进行攻击(我不是很好用正则表达式,无论我尝试多少)试图让它看看网址是否有www然后重定向到非www
原因是我有一个子域
trade.words.co.uk 但我想确保他们不去www.trade.words.co.uk
感谢您提前提供任何帮助
答案 0 :(得分:0)
试试这个:
<rewrite>
<rules>
<clear />
<rule name="WWW Rewrite" enabled="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(?:www\.)([.a-zA-Z0-9]+)$" />
</conditions>
<action type="Redirect" url="http://{C:1}/{R:0}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
答案 1 :(得分:0)
我猜您只需要使用扩展正则表达式的相反web.config规则来匹配正确的URL,如下所示:
<rewrite>
<rules>
<clear />
<rule name="WWW Rewrite" enabled="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^([\w-]+://?|www[.])([^\s]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))$" />
</conditions>
<action type="Redirect" url="http://{R:2}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
希望这有帮助