IIS URL重写域更改301仅将某些页面和所有其他页面单独重定向到另一个URL

问题描述 投票:0回答:1

我是IIS URL重写规则Regex的新手,并在此处寻求帮助。

这是一个内置于ASP.NET MVC的sitecore网站。我有一个域名,即www.xyz.com与另一个域名合并,即www.abc.com。我有www.xyz.com/test - > www.abc.com/test1的1对1映射。 ALl www.xyz.com/xx的内部页面将与www.abc.com/foo一起映射,但www.xyz.com的主页除外

  • 我目前仍然坚持如何,1)将www.xyz.com/主页重定向到第三方网址? 2)同时保留www.xyz.com/internal页面的1-1映射与www.abc.com/internal pages

我正在使用IIS URL重写规则将www.xyz.com的域重定向到www.abc.com,并寻找有关第三方页面主页重定向的其他帮助

提前致谢!

asp.net asp.net-mvc iis-7 url-redirection
1个回答
0
投票

您只需要两个不同的重定向规则,第一个规则将检查根域并重定向到第三方URL,第二个规则将检查内部页面并重定向到新域的内部页面

它会看起来像这样

    <rule name="redirect root to third party" stopProcessing="true">
         <match url="^$" ignoreCase="true" />
         <conditions logicalGrouping="MatchAll">
            <add input="{HTTP_HOST}" pattern="(www.)?xyz\.com$" />
         </conditions>
         <action type="Redirect" redirectType="Permanent" url="<third party url here>" />
    </rule>
    <rule name="redirect to new domain" stopProcessing="true">
         <match url="/(.*)" />
         <conditions>
               <add input="{HTTP_HOST}" pattern="^(www.)?xyz\.com$" />
         </conditions>
         <action type="Redirect" url="http://<new domain>/{R:1}" redirectType="Permanent" />
    </rule>

P.S:在第二条规则中,请检查/ - 我自己没有测试过该规则可能会在目标网址中引入额外的斜线或删除斜杠,无论它是什么,您都可以修复它。这里的要点是你需要两个单独的规则,一个用于检查确切的域后面没有任何内容并重定向到第三方和另一个子页面重定向规则

© www.soinside.com 2019 - 2024. All rights reserved.