2017-08-29 89 views
0

我的要求很简单。我有Http://abc需要使它Https://abc。我在web.config中添加了以下代码。即在IIS中添加新规则。 我已经在IIS中的URL重写模块folowwed。Http到https的URL重写

<rewrite> 
      <rules> 
       <rule name="http to https" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions> 
         <add input="{HTTPS}" pattern="^off$" /> 
        </conditions> 
        <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" /> 
       </rule> 
      </rules> 
     </rewrite> 

但仍然不适用于我。帮帮我。

+0

您是否安装了IIS重写模块? –

+0

是的。已经完成,从那里添加了新的规则。该代码属于新规则本身。 –

回答

0

您正在使用的代码非常相似,我在生产中使用,只是我用redirectType="Permanent",我碰巧使用硬编码的域名,以确保规范域名,我使用{R:1}用于路径和查询,但我认为,你应该使用{HTTP_HOST}{REQUEST_URI}应该工作,但你可能需要在两者之间的斜线。

试试这个:

<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="http to https" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTPS}" pattern="^off$" /> 
       </conditions> 
       <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 
+0

感谢罗恩,但我也尝试过这一点。它不工作。我以另一种方式得到了它。我在IIS中创建了一个演示网站。给出相同的DNS名称(即来自http:// abc的abc)。然后加入一个HTML页面,其中该代码是与 '函数redirecttoHttps() { VAR httpsUrl = “https://开头ABC”; window.location = httpsUrl;因此当用户键入Http:// abc时,那么Html页面内的脚本会将它推送到Https:// abc。 不确定它是否推荐ornot。因为最终在Https:// abc网站用户验证正在发生。只有我们正在做的事情是重定向。 –

+0

这很奇怪,您可以尝试更多的事情是将'url =“https:// {HTTP_HOST}/{R:1}”'更改为'url =“https://yourDomainHere.com/{R:1}” '这实际上是我的网站配置。 –