TYPO3与Siteimprove深度链接问题及跨窗口会话转移咨询
解决Siteimprove跳转TYPO3后台后丢失目标页面的问题
核心问题
新窗口打开Siteimprove生成的链接时,EXT:ig_ldap_sso_auth的SSO登录流程没正确保留redirect_url里的Siteimprove跳转参数,登录后直接跳转到后台首页;但同一窗口打开时,参数能在会话中正常传递,因此可以跳转到目标页面。
可行解决方案
调整EXT:ig_ldap_sso_auth的参数传递逻辑
找到扩展的Classes/Controller/LoginController.php,修改认证成功后的跳转逻辑:- 优先读取请求中的
redirect_url参数,而非直接跳转默认后台首页 - 确保参数内的
tx_siteimprove_goto部分不被过滤,完整传递到跳转步骤
- 优先读取请求中的
修改Siteimprove链接格式
调整原链接的参数顺序,避免嵌套redirect_url导致的参数丢失:
原链接:https://www.domain.ch/typo3/index.php?redirect_url=/typo3/?tx_siteimprove_goto=page:160:0修改为:
https://www.domain.ch/typo3/index.php?tx_siteimprove_goto=page:160:0&redirect_url=/typo3/也可以直接修改EXT:pxa_siteimprove的链接生成逻辑,让它输出这种格式的URL。
开启TYPO3跨窗口会话共享
在LocalConfiguration.php中添加以下配置,确保会话cookie在同域名窗口间正常传递:$GLOBALS['TYPO3_CONF_VARS']['BE']['cookieSameSite'] = 'Lax'; $GLOBALS['TYPO3_CONF_VARS']['BE']['sessionDataHandler'] = 'TYPO3\\CMS\\Core\\Session\\SessionDataHandler';cookieSameSite设为Lax既保证跨窗口参数传递,又保留基础安全性。临时脚本 workaround
使用Tampermonkey这类浏览器脚本自动处理登录后的跳转:- 检测是否刚登录进入TYPO3后台首页,且之前的跳转链接包含
tx_siteimprove_goto参数 - 提取该参数,构造跳转URL并自动执行跳转
- 检测是否刚登录进入TYPO3后台首页,且之前的跳转链接包含
内容的提问来源于stack exchange,提问作者Heinz Schilling
相关产品推荐
相关产品推荐

