2013-07-22 37 views
2

我想优雅地捕获大量需要重定向到一个单独的域例如域:IIS7 URL重写多个域的单域包括谷歌分析推荐码

mydomain.com,WWW .mydomain.com来,mydomain-eu.com,mydomain.eu

所有主要领域:

www.mydomain.co.uk

我可以通过创建一个站点 - 在绑定所有域并重新定向的过程中很轻松地在IIS中执行此操作。

但是有一个问题。客户想要追踪那些重定向来自谷歌分析的地方。

所以他们需要一些参数在重定向URL传递,例如(使用域从上方):

mydomain.eu 重定向到: www.mydomain.co.uk?utm_campaign=mydomain。欧盟& utm_source = mydomain.eu & utm_medium =转诊

所以 - 这是使用URL重写一个很好的案例。这是我在web.config中有:

<rule name="Redirect" enabled="false" patternSyntax="Wildcard" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions> 
       <add input="{HTTP_HOST}" pattern="^www.mydomain.co.uk$" negate="true" /> 
      </conditions> 
      <action type="Redirect" url="http://www.mydomain.co.uk/?utm_campaign={R:0}&amp;utm_source={R:0}&amp;utm_medium=referral" /> 
     </rule> 

如果输入不匹配的域我想成为我重定向它。

除了一件事情之外,它完美地工作。我只是不能得到原始域的参数。 {R:0}返回空白。我也试过{C:0}。我已经在GUI中测试了模式,他们告诉我我应该得到请求的域。

我在做什么错?谢谢。

回答

1

这是一个猜测,但怎么样:

<rule name="Redirect" enabled="false" patternSyntax="Wildcard" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
      <add input="{HTTP_HOST}" pattern="^www.mydomain.co.uk$" negate="true" /> 
     </conditions> 
     <action type="Redirect" url="http://www.mydomain.co.uk/?utm_campaign={HTTP_HOST}&amp;utm_source={HTTP_HOST}&amp;utm_medium=referral" /> 
</rule> 

看着这件事,并说,你可以用它在本文档中这样说:

+0

邦上钱!谢谢 –

0

感谢@ rtp致力于指导。虽然上述规则对我来说不起作用,但我仍然设法为我的IIS7服务器调整它。

<rule name="Redirect" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions> 
     <add input="{HTTP_HOST}" pattern="^www.tsogosundigishare.com$" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="http://www.tsogosundigishare.com/" redirectType="SeeOther" /> 
</rule> 

通过从规则除去enabled="false"patternSyntax,它被“Wildcard”到“Regular Expression”和添加redirectType="SeeOther"正确重定向转换规则。