如何将所有流量重定向到https& web.config中的非www?

时间:2018-02-05 14:48:20

标签: redirect iis web-config

我正在使用SSL证书和IIS。在我的web.config中,我想按以下顺序重定向所有网站流量:

  1. 所有http - > https
  2. 所有www - >非www

2 个答案:

答案 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 />