redirecthttp到https排除服务器的IP地址查询

如何将所有http://www.example.comstream量redirect到https://www.example.com,但我不想将http://1.2.3.4redirect到https://www.example.com (因为1.2.3.4是www.example.com的IP地址)。 下面的规则将不幸地redirect两个

<rewrite> <rules> <rule name="HTTP to HTTPS Redirect" enabled="true" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAny"> <add input="{SERVER_PORT_SECURE}" pattern="^0$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> </rule> </rules> </rewrite> 

先谢谢你。

您正在修改的部分是<match url="(.*)" /> ,因为这将决定匹配的url(在这种情况下,几乎任何东西)会被redirect到HTTPS。

格式是正则expression式 。 你可以在这里 (和其他地方testing不同的正则expression式,但这是我最喜欢的)。 所以,在这种情况下,你希望它只redirect域名而不是IP地址。

看到你不需要一个全面的redirectexpression式,只是一个处理某个域名http://www.example.com -> https://www.example.com ,你可能会逃脱www\.example\.com正则expression式select器。

所以试试这个:

 <rewrite> <rules> <rule name="HTTP to HTTPS Redirect" enabled="true" stopProcessing="true"> <match url="(www\.example\.com)" /> <conditions logicalGrouping="MatchAny"> <add input="{SERVER_PORT_SECURE}" pattern="^0$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> </rule> </rules> </rewrite>