我正在使用前端用户登录运行TYPO3页面。
如果用户没有登录,并且他点击了一个只有登录用户可见的页面,那么我获得了404页面。
如何显示与404页面不同的页面?
提前致谢。
更新 试过这种方式
[PIDinRootline = 68] && [usergroup = *]
# do something
[else]
page.config >
page.config.additionalHeaders = Location: http://www.yourdomain.org/login.html
[end]
但随后所有页面都重定向(运行到else分支)
更新
也尝试过:
[globalVar = TSFE:id=68] && [usergroup = *]
# do something
[else]
page.config >
page.config.additionalHeaders = Location: http://www.yourdomain.org/login.html
[end]
=>也没有工作
答案 0 :(得分:1)
我建议使用像pagenotfoundhandling
。请参阅:https://extensions.typo3.org/extension/pagenotfoundhandling/
在那里,您可以选择一个页面(例如,带登录页面),以便在用户登陆受限页面时显示。
答案 1 :(得分:1)
marked solution在TYPO3 v9中不再起作用。首先,在v9中,条件语法已更改(尽管旧语法仅被标记为已弃用并且仍然有效),以及additionalHeaders
的配置方式。答案中的代码必须是
[getTSFE().id == 68 && loginUser('*') == false]
page.config >
page.config.additionalHeaders.10 {
header = Location: http://www.yourdomain.org/login.html
}
[END]
但是,这似乎仍然不能解决所提出的问题!该代码仅适用于在没有活动登录名的情况下不受访问限制的页面。在没有登录的情况下调用访问受限页面时,将返回403 Forbidden错误,并且上述代码将被忽略。此行为将显示默认的404页面(在LocalConfiguration.php中设置['FE']['pageNotFound_handling']
时)或在Site Management Error Handling中定义的内容。
我的解决方法是创建一个具有登录表单链接的403页面,并通过上述站点管理错误处理,定义发生403错误时的处理方式。
答案 2 :(得分:0)
这是可行的解决方案:
[globalVar = TSFE:id =68] && [loginUser = ]
page.config >
page.config.additionalHeaders = Location: http://www.yourdomain.org/login.html
[end]