开发者

Multiple IIS7 URL Rewrite rules

开发者 https://www.devze.com 2023-01-15 01:30 出处:网络
I\'m trying to write IIS7 URL Rewrites rules that do two things: If a request is to http, force it to https

I'm trying to write IIS7 URL Rewrites rules that do two things:

  • If a request is to http, force it to https
  • If the url has a "www" in it, remove it and redirect to different url

In both cases I want to redirect to h开发者_如何学编程ttps://my.domain.com (substitute for real domain name)

I have no problem with the http to https rule. Also, the case of http://www.my.domain.com to https://my.domain.com also works. However, the one case I have not been able to get to work is when the original request is to https://www.my.domain.com

Here's what I have now:

<rule name="r2" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAll">
    <add input="{SERVER_PORT}" pattern="443" negate="false" matchType="Pattern" />
    <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" matchType="Pattern"  />        
  </conditions>
  <action type="Redirect" url="https://my.domain.com" />
</rule>

<rule name="r1" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAll">
    <add input="{SERVER_PORT}" pattern="443" negate="true" matchType="Pattern" />
    <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" matchType="Pattern"  />
  </conditions>
  <action type="Redirect" url="https://my.domain.com" />
</rule>

Any idea of what I need to change to get https://www.my.domain.com to redirect to https://my.domain.com ?


This may work for you

<rule name="Canonical Host Name" stopProcessing="true">
  <match url="(.*)"/>
  <conditions>
    <add input="{HTTP_HOST}" pattern="https://mydomain.com$"/>
  </conditions>
  <action type="Redirect" url="https://www.mydomain.com/{R:1}" redirectType="Permanent"/>
</rule>


Try this It is working for me

    <?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="permalink">
                    <match url="article/(\D+)(\/)*$" />
                    <action type="Rewrite" url="http://mywebsite.com/article.aspx?id={R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
0

精彩评论

暂无评论...
验证码 换一张
取 消