代码之家  ›  专栏  ›  技术社区  ›  Felix

TYPO3未登录显示登录页和非404页

  •  0
  • Felix  · 技术社区  · 8 年前

    我正在运行一个带有前端用户登录的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 回复  |  直到 8 年前
        1
  •  2
  •   clive beckett    7 年前

    这个 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禁止的错误,并忽略上述代码。此行为将显示默认的404页(当 ['FE']['pageNotFound_handling'] 在LocalConfiguration中设置。php)或 Site Management Error Handling .

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

        2
  •  1
  •   Thomas Löffler    8 年前

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

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

        3
  •  0
  •   Felix    8 年前

    这就是可行的解决方案:

    [globalVar = TSFE:id =68] && [loginUser = ]
    page.config >
    page.config.additionalHeaders = Location: http://www.yourdomain.org/login.html
    [end]
    
    推荐文章