http到https重定向 - iis8.5 url重写2.0重定向规则不起作用

时间:2017-06-16 20:18:48

标签: iis url-rewriting url-redirection iis-8.5

我很难让以下重定向规则发挥作用......

<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}&#39; {R:1}&#39;来自我的比赛的后退参​​考应该是&#39; faq&#39;

我已经和这个争论了一段时间,任何有关这里发生的事情的想法都会很棒。

一些额外的信息是我正在托管一个角度4.0网站,该规则适用于...

1 个答案:

答案 0 :(得分: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>