[在www.asp.net网络表单global.asax中包含www

问题描述 投票:0回答:1

我需要将用户重定向到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);
    }
c# asp.net webforms .net-4.5
1个回答
0
投票

感谢建议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>

© www.soinside.com 2019 - 2024. All rights reserved.