使用Web.Config从域上的一个页面重定向到另一个页面上的页面

时间:2012-04-05 07:49:56

标签: asp.net iis url-rewriting web-config http-status-code-301

我有一个内容管理的ASP.NET站点,它以不同的语言运行相同版本的站点(例如mysite.com,mysite.fr,mysite.eu等)。我被要求创建一个从我们法国站点上的一个页面到我们欧洲站点上的页面的重定向,所以我在IIS中启动了URL重写并尝试编写规则和映射来执行此操作。失败后,我试图将其写入Web.config文件,但再次无济于事。

要明确,我需要:

  • http://www.mysite.fr/publication/jobs.aspx重定向到 http://www.mysite.eu/jobs.aspx
  • http://www.mysite.fr/sign-in.aspx 重定向到http://www.mysite.eu/sign-in.aspx

有没有人确切知道我该如何做到这一点,或者是否可以在具有多个域的ASP.NET站点上完成此操作?

1 个答案:

答案 0 :(得分:1)

您可以使用网址重写来执行此操作。

这是我使用的一个例子。

<rule name="Redirect .co.uk" stopProcessing="true">
  <match url="(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
     <add input="{HTTP_HOST}" pattern="^uk\.test\.com$" />
    </conditions>
  <action type="Redirect" url="http://www.test.co.uk/{R:1}" />
</rule>

这将检查请求的{HTTP_HOST},如果它与uk.test.com匹配,则重定向到新网址,但保留页面/文件夹路径({R:1})。< / em>的

添加 / publication / 会让事情变得有点棘手,但它可以写入原始匹配(类似。(.*)\/publication\/(/*)之类的东西,我的正则表达式并不完美: - 。)

HTH