目标:我想将多个子域名(例如http://xxx.domain.com)重定向到https://xxx.domain.com
我在IIS中有以下绑定
主机名:domain.com 港口:80 Ip地址:*
主机名:domain.com 港口:443 Ip地址:*
我的web.config中有以下重写规则
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="http://(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
由于某种原因,http://xxx.domain.com提供404而不是重定向。 https://xxx.domain.com工作正常。
为什么http://xxx.domain.com给出了404?
的任何线索答案 0 :(得分:3)
我的web.config包含:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to HTTPS" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
这对我有用。我和你的人之间的差异是: 我的规则有&#34;启用=&#34; true&#34;在它和我的初始匹配没有&#34; http://&#34;在模式中,只是&#34;(。*)&#34; 。
答案 1 :(得分:0)
匹配代码中的网址错误,应为:
<match url=".*" />
在操作网址中,将{R:1}
替换为{R:0}
。