cdn.alufoil.cn是要排除的域名
要把
http://alufoil.cn、http://www.alufoil.cn、https://alufoil.cn全部做301到https://www.alufoil.cn,并且排除一个域名给cdn加速回源使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<rewrite> <rules> <rule name="LowerCaseRule1" stopProcessing="true"><--把url全部转为小写--> <match url="[A-Z]" ignoreCase="false" /> <action type="Redirect" url="{ToLower:{URL}}" /> </rule> <rule name="CanonicalHostNameRule1" stopProcessing="true"><!--匹配除了www或者cdn.alufoil.cn之外的域名,匹配到了https://alufoil.cn--> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern="^(www|cdn)\.alufoil\.cn$" negate="true" /> </conditions> <action type="Redirect" url="https://www.alufoil.cn/{R:1}" /> </rule> <rule name="CanonicalHostNameRule3" stopProcessing="true"><!--匹配www.alufoil.cn,80端口,即http://www.alufoil.cn,两个条件精准匹配--> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern="^www\.alufoil\.cn$" /> <add input="{SERVER_PORT}" pattern="80" /> </conditions> <action type="Redirect" url="https://www.alufoil.cn/{R:1}" /> </rule> </rules> <!--排除https开头的域名--> <rewriteMaps> <rewriteMap name="MapProtocol"> <add key="on" value="https" /> <add key="off" value="http" /> </rewriteMap> </rewriteMaps> </rewrite> |
规则里是通过服务器变量进行匹配的,比如{HTTP_HOST}、{SERVER_PORT}等
服务器变量参考:https://msdn.microsoft.com/zh-CN/Library/ms524602.aspx
可以通过 Request.ServerVariables(“SERVER_NAME”) 关键词去搜索具体例子
下面举个错误的例子:
此代码通过rewriteMaps使得规则只匹配http协议,跳过了https协议,所以导致https://alufoil.cn不生效,不能跳转
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<rewrite> <rules> <rule name="301" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTPS}" pattern="^on$" negate="true" /> </conditions> <action type="Redirect" url="https://www.alufoil.cn/{R:1}" redirectType="Permanent" /> </rule> </rules> <rewriteMaps> <rewriteMap name="MapProtocol"> <add key="on" value="https" /> <!--排除https开头的域名--> <add key="off" value="http" /> </rewriteMap> </rewriteMaps> </rewrite> |
未经允许不得转载:Windy's Blog » IIS全站把http做301到https,且排除域名的web.config规则