2017-08-29 113 views
0

我的要求很簡單。我有Http://abc需要使它Https://abc。我在web.config中添加了以下代碼。即在IIS中添加新規則。 我已經在IIS中的URL重寫模塊folowwed。Http到https的URL重寫

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

但仍然不適用於我。幫幫我。

+0

您是否安裝了IIS重寫模塊? –

+0

是的。已經完成,從那裏添加了新的規則。該代碼屬於新規則本身。 –

回答

0

您正在使用的代碼非常相似,我在生產中使用,只是我用redirectType="Permanent",我碰巧使用硬編碼的域名,以確保規範域名,我使用{R:1}用於路徑和查詢,但我認爲,你應該使用{HTTP_HOST}{REQUEST_URI}應該工作,但你可能需要在兩者之間的斜線。

試試這個:

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

感謝羅恩,但我也嘗試過這一點。它不工作。我以另一種方式得到了它。我在IIS中創建了一個演示網站。給出相同的DNS名稱(即來自http:// abc的abc)。然後加入一個HTML頁面,其中該代碼是與 '函數redirecttoHttps() { VAR httpsUrl = 「https://開頭ABC」; window.location = httpsUrl;因此當用戶鍵入Http:// abc時,那麼Html頁面內的腳本會將它推送到Https:// abc。 不確定它是否推薦ornot。因爲最終在Https:// abc網站用戶驗證正在發生。只有我們正在做的事情是重定向。 –

+0

這很奇怪,您可以嘗試更多的事情是將'url =「https:// {HTTP_HOST}/{R:1}」'更改爲'url =「https://yourDomainHere.com/{R:1}」 '這實際上是我的網站配置。 –