2016-09-30 86 views
0

我的网站目前无法正常工作,如果我只是在浏览器中,而不是www.domain.com,域类型https://domain.com。 com或https://www.domain.com。 我的web配置的代码是: 如何https://domain.com重定向到https://www.domain.com在IIS

<rule name="Redirect to HTTPS"> 
     <match url="(.*)" /> 
     <conditions> 
      <add input="{HTTPS}" pattern="OFF" /> 
     </conditions> 
     <action type="Redirect" url="https://www.domain.com/" redirectType="Permanent" appendQueryString="false" /> 
    </rule> 


     <!-- code for redirect https://domain.com to https://www.domain.com/ --> 

     <rule name="Redirect to HTTPS without www" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions logicalGrouping="MatchAny"> 
       <add input="{HTTP_HOST}" pattern="^[^www]" /> 
       <add input="{HTTPS}" pattern="off" /> 
      </conditions> 
      <action type="Rewrite" url="https://www.domain.com/" appendQueryString="false" /> 
     </rule> 



     <!-- end --> 


     <rule name="Add WWW prefix to DOMAIN.COM"> 
       <match url="(.*)" ignoreCase="true" /> 
       <conditions> 
       <add input="{HTTP_HOST}" pattern="^domain\.com" /> 
       </conditions> 
       <action type="Redirect" url="https://www.domain.com/{R:1}" redirectType="Permanent" /> 
      </rule> 

回答

1

我得到了这个问题的解决方案。

全部重写规则是正确的,但在IIS上的结合部分,我们增加了只有三个绑定,它是:

1.http://domain.com 
2.http//www.domain.com 
3.https://www.domain.com 

这里没有加入https://domain.com绑定,所以一旦我添加它正常工作的所有规则。

0

你并不需要:

<rule name="Redirect to HTTPS without www" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions logicalGrouping="MatchAny"> 
      <add input="{HTTP_HOST}" pattern="^[^www]" /> 
      <add input="{HTTPS}" pattern="off" /> 
     </conditions> 
     <action type="Rewrite" url="https://www.domain.com/" appendQueryString="false" /> 
    </rule> 

因为这条规则将做同样的事情,所有的重定向和httphttpswww

<rule name="Add WWW prefix to DOMAIN.COM"> 
     <match url="(.*)" ignoreCase="true" /> 
      <conditions> 
       <add input="{HTTP_HOST}" pattern="^domain\.com" /> 
      </conditions> 
     <action type="Redirect" url="https://www.domain.com/{R:1}" redirectType="Permanent" /> 
</rule> 

我想你遇到的问题是,你在site level,而不是在IIS中的server level应用它。所以在IIS中点击机器名称,然后在那里添加规则,这会将其存储在applicationhost.config文件中。

服务器级别以红色圈出,站点级别低于它。

enter image description here

+0

所以在IIS中单击计算机名称,然后添加规则存在,这将其存储在对ApplicationHost.config file.Can请你解释更多,因为我没有得到这是IIS? – Nidhi

+0

我不明白你在问什么,请你澄清一下? – Henry

+0

我无法在IIS上获取机器名称,是否可以给我任何图形参考来执行此操作? – Nidhi