关于zen cart静态化网址后带zenid的一些拙见

关于zen cart静态化网址后带zenid的一些拙见

 

Zen Cart 二次开发 
************ 
************ .

zencart关于装了静态化插件以后 网址后面出现zenid的情况 网上也说了很多方法 下面我就直接饮用一下 具体的我也都试验过 也都可行
但在网站使用过程中会出现什么问题  这个还有待观察  也许我们自己会慢慢发现 也许是有一天我们的客户发现
下面我就把网上介绍的方法罗列出来  大家看了以后别急 关键是在最后面可以消除大家的疑虑 让追求完美的人放心

1、在后台Configuration->session 将Force Cookie Use 设置为ture; 一般如果网站只是在刚开启的时候存在zenid的话,那么,只要这样设置一下就可以了; 注意:本设置将会强制要求使用cookie,部分客户会因此无法购物,则出 现cookie usage页面,请慎用!
2.修改 includes/functions/html_output.php文件
把$add_session_id = true ,改成$add_session_id = false   这个方法的原理也是强制客户使用cookie 造成的后果也是让有的不支持cookie的客户无法下单 产品添加不到购物车

3. 有人说这是彻底解决的办法 我试过可行 就是在html_output.php里面修改代码,

打开includes\functions\html_output.php文件,第一个函数定义

function zen_href_link($page = ”, $parameters = ”, $connection = ‘NONSSL’, $add_session_id = true, $search_engine_safe = true, $static = false, $use_dir_ws_catalog = true)

这个函数就是输出url地址,其中$add_session_id就是标识是否输出zenid,默认是输出的,所以去掉它最简单的方法就是把这个参数设置为false,这样默认就是不输出了。


4.还有一种情况就是从头到尾,URL地址后面一直都会有一串zenid= 参数后缀,这个情况可能是因为缓存文件夹没有写分配权限或者不存在,这个缓存 文件夹是在后台 configuration 下的Sessions 里面的Session Directory 这一项来设置 有的朋友是直接把其他地方的数据库搬过去的  这样后台Session Directory 这个绝对路径就是你原来的站里面的绝对地址 有的人会问 怎么能知道这个正确的地址 因为不同的主机商给我们分配的主机空间的地址都是不一样的 这个我不再详解 简单的方法就是在网站目录下 找 includs 下的config.php 最后一行 define(‘DIR_FS_SQL_CACHE’, ‘/XXX/XXX/XXX/XXX/XXX/cache’); 类似这样的一行 把/XXX/XXX/XXX/XXX/XXX/cache 复制到刚才说的那个地方保存就可以了
 这个方法没什么影响 博主本人我就是这么用的

至于有人说 这种方法不能彻底解决 第一次打开的时候还是带zenid啊  对于这个问题 我也曾问过高手 这不是zencart的漏洞还是什么的  相反 这是zencart严谨的地方
下面我就给大家解释一下 为什么会有这个zenid 我们要把这个根源搞清楚 消除大家的疑虑

首先zencart程序的客户登陆 浏览信息 包括添加购物车等 所有的内容都是保存在session里面的, 没有session的话,购物车就永远无法添加商品, 也就无法购买.
通常情况下, session的工作是基于浏览器的cookie的.
如果用户禁用cookie, 或者无法使用cookie 比如某些手持设备 手机 掌上电脑设备, 这样就会造成客户无法在你网站下单购买.
那碰到这种情况我们怎么办 难道就注定要失去这个客户吗  呵呵这个时候zencart这个让人头痛的zenid就派上用场了
zenid=xxx? 的方法就是实现基于 url的session , 来解决这个无cookie购物的问题的.也就是在URL网址上模拟一个session出来 这就解决了部分客户无法使用cookie的弊端
好,现在你把它关了, 就是等于向部分潜在顾客关上了大门.

说到这里 各位朋友总算清楚了这个zenid的用途了吧 

不过说到这里可能有朋友还有疑问  就是为什么浏览器是支持cookie的 第一次打开的时候 还有zenid呢 然后刷新一下 或者第二次打开就没有了 再清除一下cookie 又出来了 刷新又没了
为什么会这样呢  其实这个问题简单  默认情况下,zencart第一次打开肯定会有的,因为zencart第一次要测试当前浏览器是否支持cookie,
如果支持, 第一次以后的访问就不会带 zenid了.
另: 当搜索引擎的蜘蛛来爬你网站的时候, zenid=XXX 对于搜索引擎是自动屏蔽的,所以无须担心zenid=xxx会造成
页面重复收录,或者收录的url不完美
说到这里 应该大部分人都清楚了 那么接下来 关还是不关  各位朋友自己去权衡了  是订单重要 还是什么重要 大家心里都有个算盘 这里作者不做评论


你可能感兴趣的:(关于zen cart静态化网址后带zenid的一些拙见)