问题
I am having a hard time getting the below redirect rule to work...
<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>
The issue is as follows...
If i enter http://mywebsite.com it redirects to https://mywebsite.com no problem.
however, if i enter http://mywebsite.com/faq it is redirecting to https://mywebsite.com instead of https://mywebsite.com/faq and i cannot figure out why? It appears to be ignoring the '{R:1}' back reference that would come from my match which should be 'faq'
I've been battling with this for a while, any ideas on what is going on here would be great.
Some additional information is that i am hosting an angular 4.0 site that this rule is applied to...
回答1:
Reversing the rules worked.
<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>
来源:https://stackoverflow.com/questions/44597356/http-to-https-redirect-iis8-5-url-rewrite-2-0-redirect-rule-not-working