Http到https的URL重写
我的要求很简单。我有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>
但仍然不适用于我。帮帮我。
您正在使用的代码非常相似,我在生产中使用,只是我用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>
感谢罗恩,但我也尝试过这一点。它不工作。我以另一种方式得到了它。我在IIS中创建了一个演示网站。给出相同的DNS名称(即来自http:// abc的abc)。然后加入一个HTML页面,其中该代码是与 '函数redirecttoHttps() { VAR httpsUrl = “https://开头ABC”; window.location = httpsUrl;因此当用户键入Http:// abc时,那么Html页面内的脚本会将它推送到Https:// abc。 不确定它是否推荐ornot。因为最终在Https:// abc网站用户验证正在发生。只有我们正在做的事情是重定向。 –
这很奇怪,您可以尝试更多的事情是将'url =“https:// {HTTP_HOST}/{R:1}”'更改为'url =“https://yourDomainHere.com/{R:1}” '这实际上是我的网站配置。 –
您是否安装了IIS重写模块? –
是的。已经完成,从那里添加了新的规则。该代码属于新规则本身。 –