我正在使用SSL证书和IIS。在我的web.config中,我想按以下顺序重定向所有网站流量:
答案 0 :(得分:0)
您希望使用redirect module来执行此操作。这会拦截请求,因为它正在进入服务器并根据您的指示进行更改。
以下是将所有内容重定向到https的操作:
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
这里有一个将www重定向到非www:
<conditions> <add input=”{HTTP_HOST}” pattern=”^example\.com$” negate=”true” /> </conditions> <action type=”Redirect” url=”http://example.com/{R:1}” />
当您在搜索中包含“web.config”和“redirect”时,网络和StackOverflow上有很多文章。
确保在设置规则时,您只在最终规则上使用stopProcessing="true"
。如果它出现在第一条规则上,那么第二条规则将永远不会执行。
答案 1 :(得分:0)
我找到了答案
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="NonWwwRedirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www.yoursit\.com$" />
</conditions>
<action type="Redirect" url="http://yoursite.com/{R:1}" />
</rule>
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
<system.webServer />