.NET web.release.config中rewrite重定向规则相关问题咨询
规则基础说明
这是IIS URL重写模块的重定向规则,适用于托管在IIS、Azure App Service等Windows服务环境的.NET Web应用,规则通过XML格式配置在Web.config文件中生效。
占位符含义
%%%Redirect Pattern%%%:匹配请求域名(HTTP_HOST请求头)的正则表达式,用来标注哪些域名不需要触发跳转%%%Redirect Target%%%:重定向的目标地址前缀,一般是带协议的标准业务域名,跳转时会把用户原访问的路径完整拼接在该前缀之后
结合你更新参数的规则逻辑
你补充的参数如下:
- Redirect Pattern:
^www.somewebname.com$ - Redirect Target:
https://www.somewebname.com
规则完整执行逻辑:
- 拦截所有进入站点的请求,不限制访问路径
- 校验请求的域名:
- 当请求的域名不等于
www.somewebname.com(比如访问裸域名somewebname.com、旧业务域名、其他测试别名)时,触发重定向 - 重定向为301永久跳转,跳转目标是
https://www.somewebname.com/原访问路径 - 如果请求的域名本身就是
www.somewebname.com,不管用http还是https协议访问,都不会触发这条规则
- 当请求的域名不等于
疑问解答
该规则的作用不只是给原始URL加https前缀,甚至它本身无法实现http://www.somewebname.com转https://www.somewebname.com的效果:因为HTTP_HOST请求头只携带域名信息,不带协议,所以http访问www.somewebname.com时,请求域名匹配到了规则里的Pattern,由于negate=true的设置,反而不会触发跳转。
如果需要额外实现http转https的效果,你可以新增一条专门的跳转规则,或者在现有规则的条件里新增判断{HTTPS}值为off的校验项。
内容的提问来源于stack exchange,提问作者huco
相关产品推荐
相关产品推荐

