我需要将用户重定向到URL中包含www的安全连接,我的代码适用于https连接,但是如果用户键入https mysite.com。它应始终将用户重定向到https www.mysite.com,以下是我的代码
if (HttpContext.Current.Request.IsSecureConnection.Equals(false) && HttpContext.Current.Request.IsLocal.Equals(false))
{
Response.AddHeader("Strict-Transport-Security", "max-age=31536000");
Response.Status = "301 Moved Permanently";
Response.RedirectPermanent("https www.mysite.com" + HttpContext.Current.Request.RawUrl);
}
if (Request.Url.Host.ToString().StartsWith("www", StringComparison.OrdinalIgnoreCase).Equals(false))
{
Response.AddHeader("Strict-Transport-Security", "max-age=31536000");
Response.Status = "301 Moved Permanently";
Response.RedirectPermanent("https www.mysite.com" + HttpContext.Current.Request.RawUrl);
}
感谢建议VDWWD
<system.webServer>
<urlCompression doDynamicCompression="true" />
<rewrite>
<rules>
<clear />
<rule name="RedirectNonWwwToWww" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^ukairporttaxi.co.uk$" />
</conditions>
<action type="Redirect" url="http://www.ukairporttaxi.co.uk/{R:0}" redirectType="Permanent" />
</rule>
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
<rule name="LowercaseAllUrls" stopProcessing="true">
<match url=".*[A-Z].*" ignoreCase="false" />
<action type="Redirect" url="{ToLower:{R:0}}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
</staticContent>