我试图优雅地捕获大量需要重定向到单个域的域,例如:
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.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 中的模式,他们告诉我应该得到请求的域。
我究竟做错了什么?谢谢。