【问题标题】:IIS Redirects to multiple domains and preserves the request file path and namesIIS 重定向到多个域并保留请求文件路径和名称
【发布时间】:2017-01-25 05:53:15
【问题描述】:

我正在运行 IIS 8、Windows Server 2012。

我的网站有很多子目录。一个理想的 url 应该是这样的:

oldsite.com/subdir/subdir/pages/default.aspx

我需要将 (301) 访问者重定向到不同的域,并且需要保留原始 url 文件路径的其余部分(从第 2 个到最后一个斜杠“/”的所有内容)。

我在 Excel 表中有我的重定向地图,如下所示:

oldsite.com/subdirA/subdirB/pages/default.aspx -> newsiteA.com/subdirC/subdirD/pages/default.aspx

所以你看到除了最后一部分之外,整个事情都必须改变。

我的 web.config 如下所示:

<rewrite>    
<rewriteMaps>
    <rewriteMap name="RedirectsCollectionParshareSites">           
      <add key="/subdirA/subdirB/" value="/subdirC/subdirD/" />
      <!--will have many of these add keys-->
    </rewriteMap>
</rewriteMaps>
<rules>
  <rule name="Rule1 for RedirectsCollectionParshareSites">
    <match url="^(.+)" />  
    <conditions>
      <add input="{RedirectsCollectionParshareSites:{REQUEST_URI}}" pattern="^([^/]+)/([^/]+)(.*)" />           
    </conditions>
    <action type="Redirect" url="http://newsiteA.com/{C:1}{C:3}" appendQueryString="true" />          
  </rule>


</rules>

我希望有很多“添加键”——使用我的 excel 表中的映射,每个新域,我将有一个新的“rewriteMaps”部分,它有自己的“动作”。

我的问题是,这是使用这个模块的正确方法吗?还有其他建议吗?

请记住,我有大约一千个这样的重定向要实现。

任何帮助将不胜感激。

【问题讨论】:

    标签: redirect iis url-rewriting web-config


    【解决方案1】:

    我无法使用 rewritemaps 方法,但可以通过为每个站点执行规则来做到这一点:

    <rule name="Rule:tes" patternSyntax="ECMAScript" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
       <add input="{REQUEST_URI}" pattern="^(\/subdirA)(\/subdirB)(.*)" />
      </conditions>
      <action type="Redirect" url="http://newsite.com/subdirC/subdirD/{C:3}" />
    </rule>
    

    管理员更难更新,但它有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      • 2014-10-22
      • 2012-08-12
      • 1970-01-01
      相关资源
      最近更新 更多