TYPO3 v9索引搜索的路由增强程序
我想重写索引搜索结果的URL,但它不起作用。什么也没发生。 我在config.yaml中添加了以下RouteEnhancerTYPO3 v9索引搜索的路由增强程序,typo3,url-routing,typo3-9.x,Typo3,Url Routing,Typo3 9.x,我想重写索引搜索结果的URL,但它不起作用。什么也没发生。 我在config.yaml中添加了以下RouteEnhancer routeEnhancers: IndexedSearchPlugin: type: Extbase limitToPages: - 38 extension: IndexedSearch plugin: Pi2 routes: - routePath: '/page/{page}' _c
routeEnhancers:
IndexedSearchPlugin:
type: Extbase
limitToPages:
- 38
extension: IndexedSearch
plugin: Pi2
routes:
- routePath: '/page/{page}'
_controller: 'Search::search'
_arguments:
page: '@widget_0/currentPage'
defaultController: 'Search::search'
defaults:
page: '0'
requirements:
page: \d+
aspects:
page:
type: StaticRangeMapper
start: '1'
end: '100'
也许有人有主意了?我不经常使用索引搜索,但快速查看了页面浏览器的代码。用于索引搜索的页面浏览器使用表单和JavaScript,而不是直接链接。因此,在页面浏览器中单击页面时,会设置一个隐藏字段并提交表单。路由增强器仅适用于TYPO3生成的链接。我不知道为什么要这样做,但如果不改变页面浏览器的工作方式,就无法增强这些URL。Rudy Gnodde是对的:没有“页面”参数,因此不需要配置它 只需使用下面的routeEnhancer就可以创建一个URL,如www.domain.com/my-search-page/search,其中我的搜索页面就是包含索引搜索插件的页面
routeEnhancers:
IndexedSearchPlugin:
type: Extbase
extension: IndexedSearch
plugin: Pi2
routes:
- routePath: '/search'
_controller: 'Search::search'
defaultController: 'Search::search'
我想这取决于你想美化什么。在我的例子中,我使用这个
config.yaml
为搜索结果获取一个干净的url(搜索字段由打字脚本生成),并能够通过查询进行搜索
假设我们有一个页面https:example.de/search/
,上面放置了索引搜索插件
现在,使用搜索字段从任何页面进行搜索都将得到以下uri:https:example.de/search/results
您可以通过简单地使用该uri深入链接到一个特殊的搜索结果(这里我们正在寻找“lorem”):https:example.de/search/query/lorem
routeEnhancers:
IndexedSearchPlugin:
type: Extbase
namespace: tx_indexedsearch_pi2
routes:
- routePath: '/results'
_controller: 'Search::search'
_action: 'search::search'
- routePath: '/query/{search/sword}'
_controller: 'Search::search'
_action: 'search::search'
requirements:
- search/sword: '[^/=?]*'
defaultController: 'Search::search'
defaultAction: 'search::search'
至少在TYPO3 v10.4.8中,这对我来说是可行的(没有测试分页或高级搜索)。如果有人知道如何合并这两个路由并将post值添加到uri中,请随时发表评论。