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:
这是配置的重定向:
重定向仅适用于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进行重定向的主要内容,如果未能解决你的问题,请参考以下文章
Flux 错误:配置无效:升级到 Flux 9.4 和 Typo3 9.5 后未设置“vendorName”
TYPO3 CKEditor:防止删除两个 HTML 标记之间的空格
TYPO3:使用 TYPO3 Querybuilder 在 OrderBy 中使用 IS NULL 和 COALESCE