WPStatistics及WPSuperCache的问题解决

4.3
(3)

最近我准备用WP Statistics来作为网站流量的统计工具,这是一款Wordpress的统计插件。而WP Super Cache是Wordpress的一款静态页面缓存插件。在我同时使用这两个插件时,就发现了一些不可避免的bug,最终通过一系列骚操作,都无法避免这些bug。

最终,我放弃了WP Super Cache插件的使用(我已经做了那么多优化,去掉这个静态页面生成插件,问题不会太大的)。

WPStatistics及WPSuperCache的问题解决

前文中所说的一些bug,比如统计插件报错400(这个是在前段访问网站,F12看到了400的错误信息),无法收集百度来源的流量(当我解决了正常访问400报错后,发现从百度进入网站还是会400)。当页面是静态页面(WP Super Cache生成的页面)时,另一个用户访问网站,会直接使用静态页面生成时那个用户的相关信息访问网站,导致统计不准确。

下面,说一下我为了解决这些问题,都做了哪些改变:

我之前有禁用wordpress的rest api,会导致wp-json无法访问,最终导致网站流量无法统计,所以改用以下代码禁用rest api:禁用rest api是出于安全考虑。

//禁用rest api
add_filter('rest_authentication_errors','disable_rest_api');
function disable_rest_api() {
	if(!is_user_logged_in() && !strpos($_SERVER['REQUEST_URI'], "wp-json/wpstatistics/v1/hit?") && !strpos($_SERVER['REQUEST_URI'], "wp-json/wp-statistics/v2/hit?")) {
		return new WP_Error('Error!', __('Unauthorized access is denied!', 'rest-api-error'), array('status' => rest_authorization_required_code()));
	}
}

将WP Super Cache的预缓存模式取消,因为这种每次访客访问都是静态页面,无法传入访客的相关访问信息。

将WP Super Cache的缓存有效期改为60秒,每90秒自动检查缓存页面是否过期(这么做,一定程度上可以防止被人突然CC,导致数据库查询暴涨),不过,后来想想没啥太大必要。

WPStatistics及WPSuperCache的问题解决

经过这些折腾,我发现百度过来的流量无法统计,其他统计都很正常了。刚开始,我以为是防火墙的问题,但随后,我就排除了这种原因。因为报错代码是400,我的防火墙没这种操作。防火墙只是记录了这次400的报错而已,并非防火墙导致400错误。

最终,我禁用了WP Super Cache插件,问题得到解决。

共计3人评分,平均4.3

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/website/wp-statistics-supercache.html

发表评论

登录后才能评论
本站APP
本站APP
分享本页
返回顶部