我有一个 CodeIgniter 网站,当登陆页面被点击时,它会为用户分配一个 UUID。重新加载登录页面将分配一个新的 UUID,但是一旦您开始浏览表单,您的 UUID 将保持不变。但是,当用户点击后退按钮时,我不太明白发生了什么事情,并且行为会根据他们到达的 URL 而有所不同?
案例 1:domain.com/somehash?key=value
或domain.com/somehash/
如果您使用包含 GET 参数的上述 url 到达,提交第一个表单(包含您的 uuid),然后按返回按钮,您将返回到登录页面,但您的 UUID 不会更改。
案例二: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]
路线.php:
$route['default_controller'] = "home";
$route['404_override'] = '';
$route['(:any)'] = 'home/index/$1';