使用IIS Url从HTTPS重写到另一个HTTPS

时间:2013-10-23 11:13:22

标签: c# iis url-rewriting web-config

我正在尝试将我的网站从https://localhost重定向(但使用ip编写,如https://10.0.7.8)到另一个https位置,例如https://mysite.com

我目前的配置是:

<rewrite>
  <rules>
    <rule name="Rewrite to mysite.com" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <action type="Redirect" url="https://mysite.com/{R:0}" redirectType="Permanent" />
      <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="https://10.0.7.8*" />
      </conditions>
     </rule>
  </rules>
</rewrite>

当我访问https://10.0.7.8时,它不会转到https://mysite.com,而是停留在https://10.0.7.8

知道我做错了什么吗?

1 个答案:

答案 0 :(得分:2)

您需要在2个条件下将https部分与ip分开:

<rewrite>
  <rules>
    <rule name="Rewrite to mysite.com" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="^10\.0\.7\.8$" />
        <add input="{HTTPS}" pattern="^ON$" />
      </conditions>
      <action type="Redirect" url="https://mysite.com/{R:0}" redirectType="Permanent" />
     </rule>
  </rules>
</rewrite>

另外,10.0.7.8需要写10\.0\.7\.8,因为.需要转义,因为它是一个特殊字符。