IIS URL重写正则表达式

时间:2014-06-23 16:47:57

标签: regex iis redirect url-rewriting

我对正则表达式和IIS中的URL Rewrite模块的新功能很可怕,所以请耐心等待...

我有一个场景,我有1-2页,我需要重定向到特定的位置和协议(https)。

所需网址

https://www.domain.com/specific/location/mypage.aspx

我需要确保用户在尝试访问此页面时访问此特定网址。所以下面的任何一个都应该将用户重定向到我想要的"网址:

http://www.domain.com/specific/location/mypage.aspx
http://domain.com/specific/location/mypage.aspx
https://domain.com/specific/location/mypage.aspx
http://www.anotherDomain.com/specific/location/mypage.aspx
http://anotherDomain.com.com/specific/location/mypage.aspx
https://anotherDomain.com.com/specific/location/mypage.aspx

我需要对此页面和另一个页面进行此操作,并且我需要确保仅将这些页面重定向到ssl,因此如果用户键入https,则应将网站的其余部分重定向到其http版本。我怎样才能做到这一点,我需要多个规则等吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

值得庆幸的是,这并不像看起来那么复杂。使用IIS URL重写模块创建规则时," url"在匹配标记中只查看主机名后面的所有内容。它没有看到domain.com。

因此,在web.config中,在system.webserver部分的重写部分中:

<rule name="Redirect Specific Location" enabled="true" stopProcessing="true">
   <match url="specific\/location\/mypage\.aspx"/>
   <action type="Redirect" url="https://www.domain.com/specific/location/mypage.aspx"/>
</rule>

这样,无论主机名是什么,任何以特定/ location / mypage.aspx结尾的URL都将被重定向。