从“https:// www”重定向到“https://”

时间:2015-08-27 12:54:25

标签: asp.net redirect ssl

我们将ASP.NET应用程序托管为Azure WebApp,并从GoDaddy配置域。我们为非www域购买了SSL。我们使用了以下重定向规则:

<rewrite> 
  <rules>
   <rule name="Redirect to Example.com">
    <match url="(.*)"/>
    <conditions>
      <add input="{HTTP_HOST}" pattern="^(?!^Example.com)" />
    </conditions>
    <action type="Redirect" url="https://Example.com/{R:1}"/>
  </rule>

  <rule name="Redirect to https">
    <match url="(.*)"/>
      <conditions>
         <add input="{HTTPS}" pattern="Off"/>
         <add input="{REQUEST_METHOD}" pattern="^get$|^head$" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"/>
   </rule>
 </rules>
</rewrite>

有没有办法添加其他规则来将请求重定向到“https://www”到“https://”?

谢谢,

1 个答案:

答案 0 :(得分:0)

我的Windows主机遇到了类似的挑战,因为我有一个通配符证书并托管了一些子域名。这是我放在一起的web.config,试一试,让我知道!它似乎对我很有用,但我的网站非常简单。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <clear />

        <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>

        <rule name="remove www" stopProcessing="true">
          <match url="(.*)" ignoreCase="true" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^www\.YourDomain\.com$" />
          </conditions>
          <action type="Redirect" url="https://YourDomain.com/{R:0}" redirectType="Permanent" />
        </rule>

      </rules>
    </rewrite>
  </system.webServer>
</configuration>