限制特定域的IIS重写映射

限制特定域的IIS重写映射,iis,url-rewriting,web-config,sitecore,Iis,Url Rewriting,Web Config,Sitecore,我的要求是需要重定向特定域的url。所以我决定 使用“重写映射”,但我在下面尝试的内容将适用于我拥有的所有域。它不适用于特定领域 让我举个更深刻的例子。假设同一IIS实例上有3个域 www.abc.com www.xyz.com www.eee.com 在域www.abc.com中,urlwww.abc.com/legal应重定向至www.abc.com/privacy 像上面一样,我有很多重定向url需要为同一个域实现 下面列出了我尝试过的事情 <!--Test snippet 1

我的要求是需要重定向特定域的url。所以我决定 使用“重写映射”,但我在下面尝试的内容将适用于我拥有的所有域。它不适用于特定领域

让我举个更深刻的例子。假设同一IIS实例上有3个域

  • www.abc.com
  • www.xyz.com
  • www.eee.com
  • 在域www.abc.com中,urlwww.abc.com/legal应重定向至www.abc.com/privacy

    像上面一样,我有很多重定向url需要为同一个域实现

    下面列出了我尝试过的事情

       <!--Test snippet 1-->
    
        <rewrite>
          <rules>
            <rule name="Redirect rule1 for Redirects" enabled="true" stopProcessing="true">
              <match url=".*" />
              <conditions>
                <add input="{HTTP_HOST}" pattern=".*www.abc.com.*" />
                <add input="{ABCRedirects:{REQUEST_URI}}" pattern="(.+)" />
              </conditions>
              <action type="Redirect" url="{C:1}" appendQueryString="false" /> 
            </rule>
          </rules>
          <rewriteMaps configSource="abc-rewritemaps.config" />
        </rewrite>
    
         <!--Test snippet 2-->
        <rewrite>
          <rules>
            <rule name="Redirect rule1 for Redirects" enabled="true" stopProcessing="true">
              <match url=".*www.abc.com.*" />
              <conditions>
                <add input="{HTTP_HOST}" pattern=".*www.abc.com.*" />
                <add input="{ABCRedirects:{REQUEST_URI}}" pattern="(.+)" />
              </conditions>
              <action type="Redirect" url="{C:1}" appendQueryString="false" />
            </rule>
          </rules>
          <rewriteMaps configSource="abc-rewritemaps.config" />
        </rewrite>
    
         <!--Test snippet 3-->
    
        <rewrite>
          <rules>
            <rule name="Redirect rule1 for Redirects" enabled="true" stopProcessing="true">
              <match url=".*" />
              <conditions>            
                <add input="{ABCRedirects:{REQUEST_URI}}" pattern=".*www.abc.com.*" />
              </conditions>
              <action type="Redirect" url="{C:1}" appendQueryString="false" />
            </rule>
          </rules>
          <rewriteMaps configSource="abc-rewritemaps.config" />
        </rewrite>
    
        <!--My Rewrite map-->
    
        <rewriteMaps>
          <rewriteMap name="ABCRedirects">
            <add key="/legal" value="/privacy" />
            <add key="/good" value="/bad" />
            <add key="/hi" value="/bye" />
            <add key="/no" value="/not" />
            <add key="/123" value="/321" />
          </rewriteMap>
        </rewriteMaps>
    
    
    
    最重要的是,我尝试过的所有代码都适用于所有域,我不能仅限于www.abc.com


    如何限制特定域的重写映射?

    我测试了您的第一个代码片段,它对我有效。您是否可以尝试使用失败的请求跟踪来更好地了解哪里出了问题,请参阅此处@Jeroen-ur-idea-helps,我的代码实际上可以工作。由于iis缓存失败。