2017-06-16 101 views
0

我有一個很難得到下面的重定向規則工作2.0重定向規則...HTTP到HTTPS重定向 - iis8.5 URL重寫不工作

<rules> 
<rule name="Relative Path Rewrite" stopProcessing="false"> 
    <match url=".*" /> 
    <conditions logicalGrouping="MatchAll"> 
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
    <add input="{REQUEST_URI}" pattern="^/$" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="/" /> 
</rule> 
<rule name="Ssl Redirect" stopProcessing="false"> 
    <match url="(.*)" /> 
    <conditions> 
     <add input="{HTTPS}" pattern="^OFF$" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" /> 
</rule> 
</rules> 

的問題如下...

如果我輸入http://mywebsite.com它重定向到https://mywebsite.com沒有問題。

但是,如果我輸入http://mywebsite.com/faq它重定向到https://mywebsite.com,而不是https://mywebsite.com/faq,我不明白爲什麼?它似乎忽略了來自我的比賽的'{R:1}'後部參考,這應該是'常見問題'

我一直在爭取這一段時間,關於這裏發生的任何想法會很好。

一些額外的信息是我主持的角4.0站點,該規則適用於......

+0

由於這條規則'相對路徑重寫'的問題。這條規則的條件:重定向所有東西,不是'file'或'directory',URL不是'/'。此規則將您從「http:// mywebsite.com/faq」重定向到「http:// mywebsite.com」,然後從「http:// mywebsite.com」重定向到https:// mywebsite。 com' –

回答

1

倒車規則工作。

<rewrite> 
<rules> 
    <rule name="Ssl Redirect" stopProcessing="false"> 
    <match url="(.*)" /> 
    <conditions> 
    <add input="{HTTPS}" pattern="^OFF$" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" /> 
    </rule> 
    <rule name="Relative Path Rewrite" stopProcessing="false"> 
    <match url=".*" /> 
    <conditions logicalGrouping="MatchAll"> 
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
    <add input="{REQUEST_URI}" pattern="^/$" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="/" /> 
    </rule>   
</rules> 
</rewrite>