【发布时间】:2020-04-01 07:46:12
【问题描述】:
我正在使用 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 路径进行比较。路径不是 /about-us/,而是 /fr/page-not-found,这意味着重定向已经发生。匹配失败,因为我的正则表达式是:
#^(.*)/about-us/$#
有人对此有解决方案吗? 在此先感谢您的帮助。 问候 朱利安
【问题讨论】:
-
我无法用最新的 TYPO3 重现这个。使用带有介绍包的标准 TYPO3 实例并将 /en 配置为默认语言,然后使用正则表达式添加重定向:
#^(.*)/about-us$#。也许问题已解决或 is_regex 复选框未激活?如果问题仍然存在,也许提交一个问题? -
无论如何,最好使用答案中建议的更具体的重定向,例如
#^(fr|de|)/about-us$# -
可能相关:stackoverflow.com/questions/59746834/… 可能是 v9 中不再出现的问题。