.htaccess导致页面访问量异常激增问题求助
解决后台页面访问量重复统计的问题
这问题我做项目时也踩过一模一样的坑!核心原因是你的RewriteRule没排除admin目录和静态资源文件的请求,导致后台页面加载时,所有的CSS、JS、图片、甚至favicon.ico这类资源请求都被强制重定向到index.php了——每个资源请求都会触发一次访问统计逻辑,18次刚好对应后台页面加载的所有资源总数。
具体解决方案:修改你的.htaccess规则
在重写规则前添加排除条件,让admin目录下的请求、以及真实存在的文件/目录直接访问,不走重写逻辑:
RewriteEngine On # 1. 排除admin目录的所有请求,直接放行 RewriteCond %{REQUEST_URI} !^/admin/ # 2. 排除真实存在的文件(比如CSS、JS、图片) RewriteCond %{REQUEST_FILENAME} !-f # 3. 排除真实存在的目录 RewriteCond %{REQUEST_FILENAME} !-d # 仅对符合上述条件的请求执行重写 RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
额外注意事项:
- 检查后台页面的资源引用路径,尽量使用绝对路径(比如
/admin/css/main.css),避免相对路径导致的资源请求路径错误。 - 如果你的后台页面本身也需要统计访问量,可以单独在admin目录下写统计逻辑,或者在主统计代码里加判断:当
$_GET['page']包含admin相关路径时,只统计一次(不过更推荐从.htaccess层面拦截无关请求,性能更好)。
这样修改后,后台页面的资源请求不会再触发index.php,访问量统计就只会记录1次页面加载了。
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

