如何让IIS添加www的URL重写规则忽略本地开发域名?
解决IIS URL重写规则忽略本地开发域名的问题
这个场景太常见了——生产环境的重写规则在本地开发时“过度生效”,把本地域名也强行跳转到生产地址了。咱们只需要给原规则加一个排除本地域名的条件就能搞定。
修改后的完整规则代码
<rule name="Add www" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="www.example.com" negate="true" /> <add input="{HTTP_HOST}" pattern="mydomain.local" negate="true" /> </conditions> <action type="Redirect" url="https://www.example.com/{R:1}" /> </rule>
关键修改点说明
- 我给
<conditions>标签加上了logicalGrouping="MatchAll"(默认其实就是这个逻辑,显式写出来更直观),意思是只有所有条件都满足时,才会触发重定向操作。 - 新增的条件
<add input="{HTTP_HOST}" pattern="mydomain.local" negate="true" />:negate="true"表示当请求的域名不是mydomain.local时,这个条件才成立。
这么改完之后,规则只会对「既不是www.example.com、也不是mydomain.local」的域名执行重定向,完美避开你的本地开发站点。
额外优化(可选)
如果以后你有多个本地域名(比如test.local、dev.local),可以用通配符匹配所有.local结尾的域名,把第二个条件替换成:
<add input="{HTTP_HOST}" pattern="*.local" negate="true" />
这样所有本地.local域名都会被自动排除,不用逐个添加。
内容的提问来源于stack exchange,提问作者Ayo Adesina
相关产品推荐
相关产品推荐

