2016-03-02 163 views
2

我想在web.config中使用此代碼將網站上的所有頁面重定向到https://然而,只要我嘗試此操作,我會得到一個無限循環(Firefox告訴我重定向將永遠不會正常結束),但我不知道爲什麼。我只能訪問FTP並且無法直接訪問服務器,因此我無法使用GUI方法。我在這個不熟悉的領域,任何幫助將不勝感激。web.config重定向到https導致重定向循環

<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> 

回答

1

試試這個規則,而不是檢查HTTPs == off,檢查HTTPS != ON

<rule name="Redirect to https" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions> 
    <add input="{HTTPS}" pattern="^ON$" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" /> 
</rule> 

我無法解釋爲什麼你的規則不起作用,但這是我一直使用的規則,我沒有問題。值得注意的是:在使用HTTP_HOST值時,我發現IIS重寫規則偶爾會出現問題,就好像它有錯誤的值一樣,所以可以肯定地說IIS重寫規則不是100%可靠的。

+0

我仍然收到同樣的錯誤:「Firefox檢測到服務器以永不完成的方式重定向該地址的請求。」它可能是一個設置不正確? –

+0

@ S.Wiser您是否有其他重寫規則可以取代這個?是否有可能重寫模塊沒有安裝在IIS中?我認爲它不是隨IIS提供的,必須單獨安裝。 – Keith

+0

是啊,已經有一個重寫規則: <規則名稱= 「重定向fleurtations.uk.com到www」 patternSyntax = 「ECMAScript的」 stopProcessing = 「真」> <匹配URL =/「*」> (對不起,不知道如何格式化這個評論) –