【发布时间】:2018-01-13 19:56:15
【问题描述】:
之前有人问过这个问题,我在自己问之前浏览了建议问题。不幸的是,我没有找到我需要的答案。
我在我的 Web.Config 文件中重写了用于将 TLD 域从 HTTP 重定向到 HTTPS。我遇到的问题是它也重定向了子域站点。我只希望 TLD 重定向而不是子域站点。
例如我有 www.example1.co.za 和 www.example2.com
我需要 http://www.example2.com 重定向到 https://www.example2.com,但不需要 http://a.example2.com 或 www.example2.com 的任何子域
它还必须保留http://example1.co.za 重定向到https://example1.co.za 的重定向规则
这是我的配置代码:
<rules>
<clear />
<rule name="Redirect to SSL for Mass" stopProcessing="true">
<match url="(.*)" ignoreCase="true"/>
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="example1\.co\.za$" />
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://example1.co.za" />
</rule>
<rule name="Redirect to SSL for Pro" stopProcessing="true">
<match url="(.*)" ignoreCase="true"/>
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="example2\.com$" />
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://example2.com" />
</rule>
</rules>
编辑
我尝试添加另一个规则来排除子域。但是我收到错误:(
<rule name="Exclude Sub Sites from Pro HTTPS Rule" stopProcessing="true">
<match url="(.*)" ignoreCase="true"/>
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^*\.example2\.com$" negate="true" />
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
</rule>
【问题讨论】:
标签: asp.net redirect url-rewriting web-config