TYPO3 9.5-使用cms-redirects进行重定向

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TYPO3 9.5-使用cms-redirects进行重定向相关的知识,希望对你有一定的参考价值。

我正在使用TYPO3 v9.5.15,并希望配置一些自动重定向。我希望访问https://www.example.com/about-us/的用户在特定的内部页面上被重定向。

网站必须配置语言(法语和德语)。这是站点配置:

base: 'https://www.example.com'
baseVariants:
  -
    base: 'https://local.example.com'
    condition: 'getenv("HTTP_HOST") == "local.example.com"'
  -
    base: 'https://staging.domain.com'
    condition: 'getenv("HTTP_HOST") == "staging.example.com"'
errorHandling:
  -
    errorCode: '404'
    errorHandler: Page
    errorContentSource: 't3://page?uid=157'
languages:
  -
    title: Français
    enabled: true
    base: /fr/
    typo3Language: fr
    locale: fr_CH
    iso-639-1: fr
    navigationTitle: FR
    hreflang: fr-CH
    direction: ltr
    flag: fr
    languageId: '0'
  -
    title: Deutsch
    enabled: true
    base: /de/
    typo3Language: de
    locale: de_CH
    iso-639-1: de
    navigationTitle: DE
    hreflang: de-CH
    direction: ltr
    fallbackType: fallback
    fallbacks: '0'
    flag: de
    languageId: '1'
rootPageId: 84
routes:   

这是配置的重定向:

Configured redirection image

重定向仅适用于https://www.example.com/fr/about-us/https://www.example.com/de/about-us/,不适用于没有语言段的情况。没有语言段,我得到404错误页面。

当调试\ TYPO3 \ CMS \ Redirects \ Service \ RedirectService-> matchRedirect()时,我的正则表达式将与当前URI路径进行比较。路径是/ fr / page-not-found,而不是/ about-us /,这意味着已经发生了重定向。和匹配失败,因为我的正则表达式是:

#^(.*)/about-us/$#

有人对此有解决方案吗?在此先感谢您的帮助。问候朱利安

答案

得到404的原因是,您的正则表达式仅匹配开头填充有某些内容的页面,以/about-us/结尾-在您的情况下为语言段或任何路径文件夹。

可以这么说,您没有为“无语言段”配置重定向。

一种方法,使用以下方法添加第二个重定向:

#^/about-us/$#

作为正则表达式,并且对于其他设置使用相同的设置,它应该执行您想要的操作。

无论如何,将省略(。*)占位符,因为它与很多匹配。更具描述性可节省头缓存和不受控制的匹配。

否则,您必须创建一个正则表达式,匹配带和不带语言段的两种情况:

#^/([a-z0-9-]+)(/|)about-us/$#

或更开放:

#^/(.*)(/|)about-us/$#

或者,如果您具有路径结构,最好只限制在已知的语言段中:

#^/(en/|fr/|de/|)about-us/$#

以上是关于TYPO3 9.5-使用cms-redirects进行重定向的主要内容,如果未能解决你的问题,请参考以下文章

TYPO3 是不是可以跳过 9.5 更新

全新安装最新的 TYPO3 9.5 LTS 后无法登录后端

Flux 错误:配置无效:升级到 Flux 9.4 和 Typo3 9.5 后未设置“vendorName”

TYPO3 电子邮件垃圾邮件防护

TYPO3 CKEditor:防止删除两个 HTML 标记之间的空格

TYPO3:使用 TYPO3 Querybuilder 在 OrderBy 中使用 IS NULL 和 COALESCE