TYPO3 v9索引搜索的路由增强程序

TYPO3 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

我想重写索引搜索结果的URL,但它不起作用。什么也没发生。 我在config.yaml中添加了以下RouteEnhancer

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中,请随时发表评论。