【发布时间】:2020-10-01 17:44:08
【问题描述】:
我正在使用 C#,并且我有一个使用开放文本字段的 CMS。我正在手动进行重定向,在此之上附加了一个查询字符串,但我有编辑器将 UTM 放入 URL 中。我正在尝试跟踪重定向/虚 URL,以便我们看到它们的成功,但是编辑器正在添加 UTM,当我传输重定向时,我将“?ref =”添加到他们的 URL 到第二个 URL。
我需要知道如何替换查询字符串中的任何后续问号。
CMS 看到第二个问号并自动重定向到主页,因为我认为它试图对 URL 进行智能处理,而第二个问号导致它认为 URL 无效。
所以我得到的原始 URL 看起来像这样:
www.mysite.com/somepage?utm_source=foo&utm_medium=bar
然后它会重定向,所以我可以跟踪 URL,它现在看起来像这样
www.myothersite.com/this-other-page?ref=www.mysite.com/somepage?utm_source=foo&utm_medium=bar
所以我想做的是在第二个 URL 中用 & 号替换第二个问号。我将如何只做第二个或后续的而不摆脱第一个?
我正在使用 Javascript 在视图中进行重定向。
到目前为止我的代码
@{
var currentPageUrl = HttpContext.Current.Request.Url.AbsoluteUri;
}
<script type="text/javascript">
setTimeout(function () {
window.location.href = '@Model.Content.GetPropertyValue("externalRedirectURL")?ref=@currentPageUrl';
}, 200); //will call the function after 2 secs
</script>
【问题讨论】:
-
不要手动构建它们,而是使用built-in types that already handle this。如果你不使用 .NET Core,Flurl 也可以处理这个问题。
标签: javascript c# query-string