网站在站点内链接中重复查询字符串参数
Website duplicates query string parameters in in-site links
当使用Google URL跟踪代码时,我有IsaFYI.com的问题。
例如,如果一个人进入页面:http://isafyi.com/mom-of-two-covers-college-expenses-with-isagenix-business/then,点击故事底部的识别链接,他们将被带到页面http://isafyi.com/category/recognition/。如果有人点击促销链接,他们将被带到http://isafyi.com/sales-promotions/页面。
However, if tracking code is placed on the first page, (in this case, ?utm_source=test&utm_medium=test&utm_campaign=test,) the first url looks like this:
http://isafyi.com/mom-of-two-covers-college-expenses-with-isagenix-business/?utm_source=test&utm_medium=test&utm_campaign=test
如果点击了这个链接,现在又点击了页面底部的识别链接,他们会被带到
http://isafyi.com/recognition/?utm_source=test&utm_medium=test&utm_campaign=test?utm_source=test&utm_medium=test&utm_campaign=test
If you look carefully, you can see that the tracking code is now on the link twice:
http://isafyi.com/recognition/
?utm_source=test&utm_medium=test&utm_campaign=test
?utm_source=test&utm_medium=test&utm_campaign=test
如果从这个页面点击促销链接,他们将被带到:
http://isafyi.com/salespromotions/utm_source=test&utm_medium=test&utm_campaign=testutm_source=test&utm_medium=test&utm_campaigtestutm_source=test&utm_medium=test&utm_campaign=testutm_source=test&utm_medium=test&utm_campaign=test
已加倍的代码已再次加倍。每点击一次内部链接,这个数字就会呈指数级增长。
如果用户现在点击指向外部站点的链接,它将被服务器拒绝。出现的消息是:
请求的URL被拒绝。
请咨询您的管理员。你的support ID是:XXXXXXXXXXXXXXXXXXXXX
你有一个javascript文件"isafy.js"。这里有一段代码:
var curUrl = window.location.href; // Gets the url of the current page
var qs = curUrl.slice(curUrl.indexOf('?utm_')); // Checks url for Google Analytics Query string and if it exists, it is stored in variable 'qs'
// If 'qs' has 1 character or less it is cleared out
if(qs.length <= 1){
qs = ""
}
// Goes through every a link on the page and appends the Google query string to every link
$('a').each(function() {
var href = $(this).attr('href');
href += qs;
$(this).attr('href', href);
});
此代码添加utm字符串,但不检查参数是否已经添加。因此,每点击一个链接,你得到的参数添加到url的另一个实例(所以蜡笔的评论是正确的)。
我甚至不知道这是什么-对于谷歌分析它是足够的,如果参数设置在登陆页。如果您需要在页面的其他地方的utm值,您应该考虑使用cookie,如果不删除这段脚本
相关文章:
- 如何有效地将游戏数据存储在URL查询字符串中
- 从查询字符串参数推断出正确的数据类型
- AngularJS:获取链接中没有哈希的查询字符串值
- AngularJS,如何更改查询字符串
- 如何将activeadmin查询字符串传递给batch_action
- 如何从查询字符串中的输入字段发回文本
- Django在使用AJAX时没有接收到新的查询字符串
- 使用查询字符串方法清除浏览器缓存
- 用于刷新的Javascript更改查询字符串
- 我想将查询字符串变量添加到JSON名称/值对中
- 将查询字符串值从页面传递 asp.net 到 iframe
- jqueryajax生成查询字符串,如果未定义则不通过
- 如何将查询字符串传递到HTML框架
- AngularJs将查询字符串发布到c#控制器
- Jquery - 从查询字符串中获取“#”值之后,而不是在“?”符号值之后获取
- 在 JavaScript 中将查询字符串传递给 Web 服务 (ASP.NET)
- 在查询字符串中查找 where 子句
- POST encodeURI查询字符串内部服务器错误 500
- JavaScript:从具有使用 # 符号的路由的 URL 获取查询字符串
- 更改链接 URL 中的路径名,同时保持查询字符串不变