0

我正在运行一个带有前端用户登录的 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]

=> 也不工作

4

3 回答 3

2

标记的解决方案在 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 页面(['FE']['pageNotFound_handling']在 LocalConfiguration.php 中设置时)或站点管理错误处理中定义的任何内容。

我的解决方法是创建一个带有登录表单链接的 403 页面,并通过上面提到的站点管理错误处理,定义发生 403 错误时会发生什么。

于 2019-07-11T13:51:21.240 回答
1

我建议使用像 eg 的扩展名pagenotfoundhandling。请参阅:https ://extensions.typo3.org/extension/pagenotfoundhandling/

在那里,您可以选择一个页面(例如登录页面)以在用户登陆受限页面时显示。

于 2018-02-22T19:08:28.217 回答
0

这就是工作解决方案:

[globalVar = TSFE:id =68] && [loginUser = ]
page.config >
page.config.additionalHeaders = Location: http://www.yourdomain.org/login.html
[end]
于 2018-02-23T11:08:59.457 回答