Redirect Web.config URL重定向到非www+;https

Redirect Web.config URL重定向到非www+;https,redirect,url-rewriting,iis-7,web-config,iis-7.5,Redirect,Url Rewriting,Iis 7,Web Config,Iis 7.5,目前,我的规则是: <rule name="SecureRedirect" stopProcessing="true"> <match url="^(.*)$" /> <conditions> <add input="{HTTPS}" pattern="off" /> <add input="{HTTP_HOST}" pattern="^(www\.)?(.*)$" /> </conditions>

目前,我的规则是:

<rule name="SecureRedirect" stopProcessing="true">
  <match url="^(.*)$" />
  <conditions>
    <add input="{HTTPS}" pattern="off" />
    <add input="{HTTP_HOST}" pattern="^(www\.)?(.*)$" />
  </conditions>
  <action type="Redirect" url="https://{C:2}" redirectType="Permanent" />
</rule>

问题在于:

http://www.domainName.com/image.png
错误地重定向到
https://domainName.com
而不是
https://domainName.com/image.png

https://www.domainName.com/image.png
从未重定向到
https://domainName.com/image.png


那么,将所有内容重定向到非www https URL的真正方法是什么呢?

我在我的网站上的做法如下:

ServerName www.example.com
ServerAlias example.com
Redirect / https://www.example.com/
试试这个规则:

<rule name="SecureRedirect" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTPS}" pattern="^OFF$" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>

符合您所有要求的正确规则是:

<rule name="SecureRedirect" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAny">
         <add input="{HTTP_HOST}" pattern="^(www\.)?(.*)$" />
         <add input="{HTTPS}" pattern="off" />
    </conditions>
    <action type="Redirect" url="https://{C:2}/{R:1}" redirectType="Permanent" />
</rule>


在web配置环境中,我不明白您的意思!这个答案不适用于IISIt在IIS10上返回错误500,有没有办法让它在IIS10上工作?它也应该在IIS10上工作。如果将此规则粘贴到web.config中的错误位置,或者未安装URL重写模块,则可能返回500