2013-12-21 97 views
3

我試圖做重定向所有http://mysite.cloudapp.net請求https://mysite.cloudapp.net蔚藍重定向所有HTTP到HTTPS

做到這一點我加入,因爲它是粘貼下面下面以我的web.config。 但是http請求沒有被重定向到https。請幫助我找出我做錯了什麼。我是否需要用我的https網址替換{SERVER_NAME}?

<system.webServer> 
    <rewrite xdt:Transform="Insert"> 
     <rules> 
      <rule name="RedirectToHTTPS" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
       </conditions> 
       <action type="Redirect" url="https://{SERVER_NAME}/{R:1}" redirectType="Permanent" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

我HTTPS URL工作文件

,如果我直接嘗試HTTPS URL,它的工作完全正常,但在情況下,如果我的用戶誤輸入http,我希望他們能夠被自動重定向到https這就是我想在這裏實現的目標,但現在並沒有發生。

+2

您是否在角色設置中配置了HTTPS端點?另外,我不認爲你可以爲'cloudapp.net'域購買SSL證書。您需要獲取自己的自定義域,並對yoursite.cloudapp.net域執行CNAME映射。 –

+0

絕對正確的帖子作爲答案被接受! – astaykov

+0

如果我直接嘗試https url,它的工作狀況非常好,但如果我的用戶錯誤地輸入http,我希望他們自動重定向到https,這就是我想要在這裏實現的目標。但這並未發生現在。 – Lee

回答

0

如果您使用的是ASP.NET MVC,您可以嘗試使用[RequireHttps]屬性,如article中所述。

這是在IIS URL重寫模塊中http到https轉換的默認規則。

<rewrite> 
    <rules> 
    <rule name="Redirect to HTTPS" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="^OFF$" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" /> 
    </rule> 
    </rules> 
</rewrite>