2016-09-30 60 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