将events子域名页面重定向至主域名指定页面的IIS Rewrite规则配置求助
修复Subdomain重定向问题(结合Sitecore 8.2.7环境)
我帮你梳理下当前规则里的问题,结合Sitecore环境的特性,给你调整后的解决方案:
原规则的核心问题
- 正则匹配错误:你写的
pattern="events.example.com^"锚点位置搞反了,^应该放在开头匹配字符串起始,$放在结尾匹配字符串结束,这样才能精确命中events.example.com这个子域名,避免误匹配其他相似域名;同时域名里的.需要转义成\.,否则正则会把它当作匹配任意字符的通配符。 - 重定向URL缺少协议:原规则里的跳转地址
www.example.com/page-target没有加https://,IIS会默认把它当作站点内的相对路径处理,导致跳转失效。 - 目标URL不符合需求:你实际需要跳转到
https://www.example.com/events,但原规则里写的是page-target,这里需要修正。
修正后的完整规则
<rule name="Events Sub-domain Redirect" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^events\.example\.com$" /> </conditions> <action type="Redirect" url="https://www.example.com/events" redirectType="Permanent" /> </rule>
额外的Sitecore环境注意事项
- 把这个规则放在所有Sitecore自带的Rewrite规则之前:Sitecore本身有一套URL处理的Rewrite逻辑,如果你的规则排在后面,请求可能会先被Sitecore拦截处理,导致重定向不生效。
- 确认IIS Rewrite模块已正确部署:虽然Sitecore 8.2.7的默认部署包一般会包含这个模块,但如果是自定义部署的话,要确保服务器上已经安装了IIS URL Rewrite模块,且web.config里的
<rewrite>节点存在于<system.webServer>下。
内容的提问来源于stack exchange,提问作者deathstarjim
相关产品推荐
相关产品推荐

