2011-02-16 52 views
3

重复的网址我需要强制每个请求https://www.mysite.com(总是以https和www)强制HTTPS并避免使用IIS7 URL重写模块

该网站在GoDaddy的托管,我需要通过IIS7 URL重写模块做。

我已经能够做到HTTPS重定向用下面的代码:

<system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="Canonical Host Name" stopProcessing="true"> 
        <match url="(.*)" /> 

        <conditions> 
         <add input="{HTTP_HOST}" pattern="^mysite\.com$" /> 
        </conditions> 

        <action type="Redirect" url="https://www.mysite.com/{R:1}" redirectType="Permanent" /> 
       </rule> 
      </rules> 
     </rewrite> 
</system.webServer> 

测试用例

我猜t当我在浏览器中输入www.mysite.com时,他的条件并未得到满足,因此没有重定向,并且该页面用作HTTP而不是HTTPS。

我想我只需要修改条件模式,但我几乎没有任何正则表达式的知识,我需要这个尽快。

谢谢!

回答

4

emzero,我认为这个问题是你的条件只匹配精确mysite.com

<conditions> 
    <add input="{HTTP_HOST}" pattern="^mysite\.com$" /> 
</conditions> 

注格局:^mysite\.com$。这说英文,传入的URL必须以mysite.com开头并以mysite.com结尾,意思是www.mysite.com而不是被匹配。

尝试这种模式,它可让一个选项www.

<conditions> 
    <add input="{HTTP_HOST}" pattern="^(www\.)?mysite\.com$" /> 
</conditions> 

快乐编程!