我已经尝试了6个小时的解决方案来解决这个问题,但是在堆栈或Microsoft的开发博客上都找不到任何东西。当尝试通过内部调用访问网站时,我试图强制从所有外部调用到我的网站的HTTPS重定向,同时仍要转到HTTP站点,在这种情况下,请使用网址栏中的IP地址192.168.8.68浏览器。直到我们昨天安装了SSL证书并实施了以下重定向规则,此方法才能正常运行:
<rule name="Redirect to HTTPS" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="OFF" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" />
</rule>
我想知道的是,如果传入IP地址的格式为192.168.8.*
,我将如何绕过它?为了解决这个问题,我已经查看了以下问题列表:
https://forums.iis.net/t/1166994.aspx?Rewrite+Redirection+for+only+external+users
IIS 7.5 redirect certain requests to other server using ip address
IIS | Block page specific url except for specific internal IP address
https://docs.secureauth.com/display/KBA/Use+URL+Rewrite+for+IP+Restrictions
Two instances of the same Website on IIS with different web.config (two different databases)
Single Website Directory / Multiple IIS Websites (Multiple web.config files)
您可以使用此规则绕过来自IP 192.168.8。*的请求。
<rule name="Redirect to HTTPS" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="OFF" />
<add input="{REMOTE_ADDR}" pattern="192\.168\.8\.[0-9]+" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
</rule>