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

TYPO3 not logged in show login page and not 404 page

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

=> 也不工作

我建议使用扩展名,例如pagenotfoundhandling。参见:https://extensions.typo3.org/extension/pagenotfoundhandling/

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

这是可行的解决方案:

[globalVar = TSFE:id =68] && [loginUser = ]
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-restricted 的页面没有活动登录。 在未登录的情况下调用 access-restricted 页面时, 将返回 403 Forbidden 错误,上面的代码将被忽略。此行为将显示默认的 404 页面(当在 LocalConfiguration.php 中设置 ['FE']['pageNotFound_handling'] 时)或在 Site Management Error Handling.

中定义的任何内容

我的解决方法是创建一个带有 link 登录表单的 403 页面,并通过上述站点管理错误处理定义出现 403 错误时发生的情况。