TYPO3未登录显示登录页面而不是404页面

时间:2018-02-22 13:13:06

标签: typo3 typo3-6.2.x felogin

我正在使用前端用户登录运行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]

=>也没有工作

3 个答案:

答案 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]