Rewrite rule error: HTTP Error 500.50 - URL Rewrite Module Error. The expression "https://abc.com/{R:1}" cannot be expanded
42,260
The matches are zero based.
<action type="Rewrite" url="https://abc.com/{R:1}" />
Won't work because you only have one match. You need:
<action type="Rewrite" url="https://abc.com/{R:0}" />
Also, this won't work, because you can only match on the path below the site root.
<match url="^(?!https://).*" ignoreCase="false" />
It looks like you are checking for ssl. Try this instead:
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
Author by
TCM
Updated on July 02, 2020Comments
-
TCM almost 4 years
Whenever someone makes request over HTTP protocol I rewrite the url to make it HTTPS. This is the code in web.config:
<rule name="Imported Rule 1-1" enabled="true" stopProcessing="true"> <match url="^(?!https://).*" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{SERVER_PORT}" pattern="80" ignoreCase="false" /> </conditions> <action type="Rewrite" url="https://abc.com/{R:1}" /> </rule>
However when I browse on http:// I get IIS error
HTTP Error 500.50 - URL Rewrite Module Error. The expression
"https://abc.com/{R:1}"
cannot be expanded.How can I resolve this? I am utterly confused.
-
jpaugh almost 4 yearsWhile the matches are zero-based, the first match
{R:0}
always contains the full string matched, and the second match{R:1}
matches the first capture group within{R:0}
. So, this answer is incorrect in the first part. You can see for yourself in the "Test Pattern" dialog.