我试图优雅地捕获大量需要重定向到单个域的域,例如:
mydomain.com, www.mydomain.com, mydomain-eu.com, mydomain.eu
all to the main domain:
www.mydomain.co.uk
通过创建站点,我可以在 IIS 中相当轻松地做到这一点 - 绑定(bind)所有域并进行重定向。
但是有一个问题。客户希望在谷歌分析中跟踪这些重定向的来源。
所以他们需要在重定向 URL 中传递一些参数,例如(使用上面的域):
mydomain.eu redirects to: www.mydomain.co.uk?utm_campaign=mydomain.eu&utm_source=mydomain.eu&utm_medium=referral
所以 - 这是使用 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}&utm_source={R:0}&utm_medium=referral" />
</rule>
如果输入与我想要的域不匹配,我将重定向它。
除了一件事之外,它还可以完美地工作。我只是无法获取原始域的参数。 {R:0} 返回空白。我也试过 {C:0} 。我已经测试了 GUI 中的模式,他们告诉我应该得到请求的域。
我究竟做错了什么?谢谢。
最佳答案
这是一个猜测,但又如何:
<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}&utm_source={HTTP_HOST}&utm_medium=referral" />
</rule>
查了一下,它说您可以在本文档中以这种方式使用它:
关于iis-7 - IIS7 URL 将多个域重写为单个域,包括谷歌分析推荐代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17787007/