我们正在更新一个古老的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一样工作,对吗?似乎一切正常,但是搜索输入字段中的数据丢失了,因此没有结果。
由于相当长的一段时间,我无法使它正常工作,非常感谢帮助
答案 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