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