我对正则表达式和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版本。我怎样才能做到这一点,我需要多个规则等吗?
非常感谢任何帮助。
答案 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都将被重定向。