TYPO3 cms-indexed-search核心扩展缺少RouteEnhancer吗?

时间:2020-06-10 10:34:43

标签: typo3 typo3-9.x typo3-8.x typo3-extensions

我们正在更新一个古老的TYPO3项目,我们已经在TYPO3 9.5上运行,并且经过大量重构后看起来还不错。

现在我重做已在T3Core中实现的ext:indexed_search部分(sysext:indexed_search)。因此,如果我禁用/删除我的站点配置,则搜索即开即用。一旦启用我们的默认网站配置,请按住:

base: 'ourDomain'
baseVariants:
  -
    base: 'ourDomain'
    condition: 'applicationContext == "Development"'
  -
    base: 'ourDomain'
    condition: 'applicationContext == "Testing"'
errorHandling: {  }
languages:
  -
    title: Deutsch
    enabled: true
    base: /
    typo3Language: de
    locale: de_DE
    iso-639-1: de
    navigationTitle: Deutsch
    hreflang: de-DE
    direction: ''
    flag: at
    languageId: '0'
rootPageId: 1
routes: {  }
routeEnhancers:

搜索不再正常工作。我可以导航到搜索页面,但仍然具有搜索表单和内容,但没有显示结果。我把$ search放到SearchController里面,发现无论如何它实际上都是空的。

经过研究,我认为可能是RouteEnhancer配置问题,所以我在cfg站点上添加了一些配置

routeEnhancers:
  IndexedSearchPlugin:
    type: Extbase
    limitToPages:
      - 41
    extension: IndexedSearch
    plugin: Pi2
    routes:
      - routePath: '/search'
        _controller: 'Search::search'
    defaultController: 'Search::search'

因此,作为我们根目录页面的子级,我们有一个名为“搜索”(route = / suche)的页面,其中包含indexed_search插件。

所以RouteEnhancer应该像domain.at/suche-> hit search-> / suche / search results一样工作,对吗?似乎一切正常,但是搜索输入字段中的数据丢失了,因此没有结果。

由于相当长的一段时间,我无法使它正常工作,非常感谢帮助

1 个答案:

答案 0 :(得分:0)

表单操作中缺少尾部斜杠是问题所在。因为如果没有该斜线,用户将在丢失POST数据的同时进行重定向。

解决方案:

.htaccess:

#redirect urls without slash
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

站点配置:

routeEnhancers:
  IndexedSearchPlugin:
    type: Extbase
    limitToPages:
      - 41
    extension: IndexedSearch
    plugin: Pi2
    routes:
      - routePath: '/search'
        _controller: 'Search::search'
    defaultController: 'Search::search'
  PageTypeSuffix:
    type: PageType
    default: '/'
    index: ''
    map:
      '/': 0