IIS URL重写规则问题:移除WWW及.info转.com规则失效
解决IIS URL重写规则问题:移除www前缀 + .info定向.com(含排除路径)
我来帮你搞定这个URL重写的坑!你的需求很明确:一是去掉所有请求的www.前缀,二是把.info域名的请求跳转到.com,但要放过首页和/usefulldoc/这类特定路径。第二条规则失效,大概率是排除条件的逻辑没写对,咱们直接上修正后的配置,再给你拆解每个部分的作用。
完整修正后的web.config规则配置
<rules> <!-- 规则1:移除www前缀 --> <rule name="Remove WWW" stopProcessing="true"> <match url=".*" ignoreCase="true" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^www\.(.*)$" /> </conditions> <action type="Redirect" url="https://{C:1}{REQUEST_URI}" redirectType="Permanent" /> </rule> <!-- 规则2:.info域名重定向到.com(排除特定路径) --> <rule name="Redirect .info to .com (Exceptions)" stopProcessing="false"> <match url=".*" ignoreCase="true" /> <conditions logicalGrouping="MatchAll"> <!-- 匹配所有.info域名(含www前缀的情况) --> <add input="{HTTP_HOST}" pattern="^(www\.)?yourdomain\.info$" /> <!-- 排除:不是首页 --> <add input="{REQUEST_URI}" pattern="^/$" negate="true" /> <!-- 排除:不是/usefulldoc/开头的路径(包括子路径) --> <add input="{REQUEST_URI}" pattern="^/usefulldoc(/.*)?$" negate="true" /> </conditions> <action type="Redirect" url="https://yourdomain.com{R:0}" redirectType="Permanent" /> </rule> </rules>
关键部分拆解说明
关于移除www的规则
stopProcessing="true":确保只要匹配到www前缀的请求,处理完这条规则就停止,避免后续规则干扰{C:1}:捕获www.后面的域名部分(比如www.yourdomain.com会捕获到yourdomain.com){REQUEST_URI}:保留原请求的路径和参数,避免重定向后丢失内容redirectType="Permanent":用301永久重定向,对SEO更友好
关于.info转.com的规则(重点解决失效问题)
- 域名匹配条件:
^(www\.)?yourdomain\.info$同时匹配带www和不带www的.info域名,避免漏判 - 排除条件的逻辑:
negate="true"表示“不匹配该模式时才满足条件”,所以两个排除条件结合起来就是:请求既不是首页,也不是/usefulldoc/开头的路径,才执行重定向- 如果需要添加更多排除路径,直接复制
<add input="{REQUEST_URI}" pattern="^/your-excluded-path(/.*)?$" negate="true" />这一行修改即可
{R:0}:代表匹配到的完整URL路径,确保重定向后保留原请求的路径和参数stopProcessing="false":如果还有其他后续规则需要执行,保持这个设置;如果不需要,可以改成true
注意事项
- 把配置里的
yourdomain替换成你实际的域名 - 确保IIS已经安装了URL重写模块(如果没装,先去IIS管理器的“功能视图”里添加)
- 测试的时候可以用浏览器的开发者工具查看网络请求,确认重定向状态码是301,且目标地址正确
内容的提问来源于stack exchange,提问作者user9086883
相关产品推荐
相关产品推荐

