一开始用的是php自动的传递sessionid,但是发现一个郁闷的问题:因为用的开发框架是cakePHP,而cakePHP的参数传递是这种形式的:
http://hulucat.com/action/param1:value1/param2:value2,即用“name:value”的形式在url中传参。然而,php的自动传递sessionid的方法应该是对“:”敏感(经过测试证实了这一点),当url中有冒号存在时,就不自动追加sessionid了。
因此,不得不放弃了php自动传递sessionid,改为依靠代码来传递:
- 规定站内所有url在书写时,必须经过一个公用方法,比如generateUrl($originalUrl),在方法内调用session_id()取得当前sessionid并向下传递。
- 修改php.ini,找到“url_rewriter.tags”这一节,把其中的“a=href”去掉,即站内手工控制的链接不必自动追加sessionid。