去除zencart程序的zenid有两种方法
1)、在后台 Configuration->session 将 Force Cookie Use 设置为ture;
一般如果网站只是在刚开启的时候存在 zenid 的话,只要这样设置一下就可以了;
另一种就是从头到尾,URL地址后面一直都会有一串zenid= 参数后缀,这个情况可能是因为缓存文件夹没有写分配权限或者不存在,可以试试方案2。
2)、引用英文论坛上的一个正确回复:
In case some of you are wondering why zen_id is all of a sudden being added to your links (or always has) and you want it gone:
Be sure that your “Session Directory” in Configuration>Sessions is set to a directory that actually exists and is writable. If the directory doesn’t exist, then Zen Cart will starting adding zenid to URLS.
Hope this helps.
这句话的意思就是说在zen-cart后台的 Configuration>Sessions 里有一项 Session Directory,它是指定session所使用的文件夹的,如果这个文件夹不存在或者不可写的话,那么就会在URL上显示 zenid= ,解决方法就是让这个项所指向的文件夹存在并且可写。
对比之前的解决方案:
在开启zencart的伪静态插件后经常会出现url最后跟了一串形如zenid=XXXXX的内容,这是服务器给每个访客
分配一个标识,zencart在服务器上针对每个访客保存一份资料,例如访客最后浏览的页面、时间、购物车里的商品、选择的货币、语言等等。这个对于 seo来说是很不利的,url唯一化太重要了,一般情况是第一次访问网站时会出现,然后刷新或者打开新页面都不会再出现。
网络上流传的常规解决办法是在后台强制开启cookies,但是这样做的弊端就是有些没有打开浏览器cookies选项的客人可能会无法付款。通过寻找终于在国外论坛找到了完美解决办法,/includes/functions/html_output.php第16行,把 “$add_session_id = true”修改成“$add_session_id = false”即可