之前已经问过这个问题,在我自己询问之前,我已经浏览了建议问题。不幸的是,我没有遇到我要求的答案。
我已在我的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>
答案 0 :(得分:2)
此规则将重定向:
http://www.example.com
重定向到https://www.example.com
,
http://example.com
重定向到https://example.com
<rule name="Check SSL" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(www\.)?example\.com$" />
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:0}" />
</rule>
此正则表达式^(www\.)?example\.com$
是过滤请求,其主机不同于example.com
或www.example.com