我有一个CodeIgniter站点,在登录页面被命中时为用户分配UUID.重新加载登录页面将分配一个新的UUID,但是一旦开始浏览表单,您的UUID将保持不变.然而,当用户点击后退按钮时,我不太了解某些事情,并且根据他们到达的URL,行为会有所不同?
案例1:domain.com/somehash?key=value OR domain.com/somehash/
如果您使用包含GET参数的上述网址到达,请提交第一个表单(其中包含您的uuid),然后按后退按钮,您将返回到目标网页,但您的UUID不会更改.
案例2:domain.com/somehash
没有GET参数,如果您提交第一个表单(包含您的uuid)并按后退按钮,您将返回到登录页面并收到一个新的uuid.
我在最新的Chrome和Firefox中对此进行了测试,是否与他们实施的某种缓存策略相关联?理想情况下回击不会刷新页面.
编辑:我应该注意我们不能使用cookie作为这个工具,因此会话已经结束
进一步编辑:只需转到domain.com/,添加反斜杠,即可在按下后退按钮时停止刷新UUID.可能与CodeIgniter routes.php或.htaccess相关?
相关的.htaccess条目:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$index.php?/$1 [L]
routes.php文件:
$route['default_controller'] = "home";
$route['404_override'] = '';
$route['(:any)'] = 'home/index/$1';