2016-09-22 77 views
0

如果我鍵入example.com,它將按照我的意願重定向到https://example.com。但是打字http://example.com/blog當它仍然重定向到https://example.com將HTTP重定向到所有頁面的HTTPS

<rewrite> 
     <rules> 
     <clear/> 
     <rule name="Force HTTPS" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions> 
      <add input="{HTTPS}" pattern="off" ignoreCase="true"/> 
      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="false" redirectType="Permanent" /> 
     </rule> 
     </rules> 
    </rewrite> 

我怎樣才能使HTTPS添加到任何用戶寫的嗎?

+0

你在這裏試過了嗎? http://stackoverflow.com/a/47095/993547 –

+0

是的。我已經添加了出站規則,現在仍然是,它重定向到根 – crystyxn

+0

請嘗試此http://stackoverflow.com/questions/32523540/http-to-https-rewrite-too-many-redirect-loops-iis-7有關詳細信息,請按照此文章http://www.hanselman.com/blog/HowToEnableHTTPStrictTransportSecurityHSTSInIIS7.aspx –

回答

1

您可以使用屬性[System.Web.Mvc.RequireHttps]作爲控制器。如果你在所有的控制器上都需要它,你可以使用下面的代碼(只有Asp.Net MVC6/core)。

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc(options => 
    { 
     options.Filters.Add(typeof(RequireHttpsInProductionAttribute)); 
    }); 
} 

注:你也可以使用HSTS,以避免客戶端使用的http請求下一次。

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
     <add name="Strict-Transport-Security" value="max-age=31536000"/> 
     </customHeaders> 
    </httpProtocol> 
</system.webServer> 
+0

的BlogController?還是家? – crystyxn

+0

@crystyxn在您需要使用https的所有控制器上使用[RequireHttps]屬性。 – qin

+0

即時通訊使用ASP.NET MVC 5 – crystyxn

相關問題