如何在 web.config 中排除特定子域重定向到 HTTPS?
How can I exclude specific subdomains from redirect to HTTPS in web.config?
我正在处理一个 MVC 项目,我的 web.config 中有以下工作规则,但它将所有子域重定向到 https。我想做的是排除一些特定的子域。例如,我需要重定向“mywebsite.com”和“www.mywebsite.com”,而不是“test.mywebsite.com”或“beta.mywebsite.com”。排除的子域应保持为“http://test.mywebsite.com”和“http://beta.mywebsite.com”,而不会重定向到 https。我怎样才能做到这一点?这是我在 web.config 中的规则:
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
<add input="{REQUEST_URI}" negate="true" pattern="^/\.well-known/pki-validation/(.*)$" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="true" />
</rule>
我曾经有一个类似的配置使用了这条规则:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="redirect to https2" stopProcessing="true">
<match url="^" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^subdomain\.example\.com$" negate="true" />
<add input="{HTTPS}" pattern="off" ignoreCase="false" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{URL}" redirectType="Found" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我正在处理一个 MVC 项目,我的 web.config 中有以下工作规则,但它将所有子域重定向到 https。我想做的是排除一些特定的子域。例如,我需要重定向“mywebsite.com”和“www.mywebsite.com”,而不是“test.mywebsite.com”或“beta.mywebsite.com”。排除的子域应保持为“http://test.mywebsite.com”和“http://beta.mywebsite.com”,而不会重定向到 https。我怎样才能做到这一点?这是我在 web.config 中的规则:
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
<add input="{REQUEST_URI}" negate="true" pattern="^/\.well-known/pki-validation/(.*)$" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="true" />
</rule>
我曾经有一个类似的配置使用了这条规则:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="redirect to https2" stopProcessing="true">
<match url="^" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^subdomain\.example\.com$" negate="true" />
<add input="{HTTPS}" pattern="off" ignoreCase="false" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{URL}" redirectType="Found" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>