我有一个网站,在 httpd.conf 中有大约 200 条 apache mod_rewrite 规则,在 redhat 的 apache webserver 上运行。
这是其中一个规则的示例,其中大多数是重定向到非常长的 URL 的短 URL:
RewriteRule ^grad2014/?$ /registration-and-records/graduation/live/index.html [R=301,L]
有人要求我对这些重定向进行一些网络分析。
“有多少人使用了 URL mysite.com/grad2014?” - 好吧,我真的不知道,因为/grad2014 在网络服务器上不存在,并且在 index.html 页面上设置了谷歌分析。
我似乎在 access.log 中没有看到任何快捷方式。还有其他方法可以查看哪些 URL 重定向最受欢迎?有没有办法开始记录这个?
最佳答案
一种方法:
将重写匹配作为查询参数添加到目标 url:
RewriteRule ^grad2014/?$ /registration-and-records/graduation/live/index.html?rr=$0 [R=301,L]
然后在您的 GA 代码中,捕获该 URL 参数并将其放入自定义变量中。不知道你是否知道custom variables ,但这里是一种设置方法的示例:
// example function get query param. use your own if you already have one
function getParam(n){var n=n||'';var x=new RegExp("[\\?&]"+n.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]")+"=([^&#]*)");var r=x.exec(window.location.href);return(r==null)?'':r[1]}
var rr = getParam('rr');
if (rr) {
_gaq.push(["_setCustomVar", 1, "Mod Rewrite Redirect URL", rr, 3]);
}
// your on-page trigger
_gaq.push(["_trackPageview"]);
注意: 默认情况下,GA 将页面名称计为 location.pathname+location.search
因此将 rr
参数添加到 url 是会影响您的页面报告。解决此问题的最简单方法是在 GA 中创建一个过滤器,将其从传入的页面名称(请求 URI)中剥离,但如果需要,您可以编写一些代码来获取 location.pathname+location.search
减去 rr
查询参数并将该值填充为 _trackPageview
中的第二个元素。
_gaq.push(["_trackPageview","custom page name here"]);
关于apache - 如何获取 mod_rewrite 重定向的分析统计信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22514606/