routeEnhancers для несуществующего новостного URL - PullRequest
0 голосов
/ 11 мая 2019

Я настроил routeEnhancers для новостей, и все, кажется, работает.Мой URL выглядит удобным для пользователя domain.my/news/details/something-new-242.Теперь я хочу проверить, что происходит, когда кто-то добавляет некоторые символы в мой url, например, domain.my/news/details/something-new-242-2ddwdwedw

typo3 выдает ошибку: параметр "acec1fc0ac7e1adfbcd522115dc07925" для маршрута "tx_news"должен соответствовать "[^ /] ++" ("" дано), чтобы создать соответствующий URL.

То, что я ожидал, было страницей ошибки 404.

Мой вопрос заключается в том, как изменить routeEnhancers, чтобы бросить404

routeEnhancers:

  NewsPlugin:
    type: Extbase
    extension: News
    plugin: Pi1
    routes:
      - { routePath: '/{news_post}', _controller: 'News::detail', _arguments: {'news_post': 'news'} }
      - { routePath: '/{tag_name}', _controller: 'News::list', _arguments: {'tag_name': 'overwriteDemand/tags'} }
      - { routePath: '/{category}', _controller: 'News::list', _arguments: {'category': 'overwriteDemand/categories'} }
      - { routePath: '/{page}', _controller: 'News::list', _arguments: {'page': '@widget_0/currentPage'} }
      - { routePath: '/{year}/{month}', _controller: 'News::list', _arguments: {'year': 'overwriteDemand/year', 'month': 'overwriteDemand/month' } }
      - { routePath: '/{year}/{month}/{day}', _controller: 'News::list', _arguments: {'year': 'overwriteDemand/year', 'month': 'overwriteDemand/month', 'day': 'overwriteDemand/day' } }
    defaultController: 'News::list'
    aspects:
      news_post:
        type: PersistedPatternMapper
        tableName: 'tx_news_domain_model_news'
        routeFieldPattern: '^(?P<path_segment>.+)-(?P<uid>\d+)$'
        routeFieldResult: '{path_segment}-{uid}'
      tag_name:
        type: PersistedAliasMapper
        tableName: 'tx_news_domain_model_tag'
        routeFieldName: 'slug'
      category:
        type: PersistedAliasMapper
        tableName: 'sys_category'
        routeFieldName: 'slug'
      page:
        type: StaticRangeMapper
        start: '1'
        end: '1000'

1 Ответ

0 голосов
/ 11 мая 2019

Еще одна вещь, которую вы пропустили - конфигурация перенаправления 404 Попробуйте это,

routeEnhancers:

  NewsPlugin:
    type: Extbase
    extension: News
    plugin: Pi1
    routes:
      - { routePath: '/{news_post}', _controller: 'News::detail', _arguments: {'news_post': 'news'} }
      - { routePath: '/{tag_name}', _controller: 'News::list', _arguments: {'tag_name': 'overwriteDemand/tags'} }
      - { routePath: '/{category}', _controller: 'News::list', _arguments: {'category': 'overwriteDemand/categories'} }
      - { routePath: '/{page}', _controller: 'News::list', _arguments: {'page': '@widget_0/currentPage'} }
      - { routePath: '/{year}/{month}', _controller: 'News::list', _arguments: {'year': 'overwriteDemand/year', 'month': 'overwriteDemand/month' } }
      - { routePath: '/{year}/{month}/{day}', _controller: 'News::list', _arguments: {'year': 'overwriteDemand/year', 'month': 'overwriteDemand/month', 'day': 'overwriteDemand/day' } }
    defaultController: 'News::list'
    aspects:
      news_post:
        type: PersistedPatternMapper
        tableName: 'tx_news_domain_model_news'
        routeFieldPattern: '^(?P<path_segment>.+)-(?P<uid>\d+)$'
        routeFieldResult: '{path_segment}-{uid}'
      tag_name:
        type: PersistedAliasMapper
        tableName: 'tx_news_domain_model_tag'
        routeFieldName: 'slug'
      category:
        type: PersistedAliasMapper
        tableName: 'sys_category'
        routeFieldName: 'slug'
      page:
        type: StaticRangeMapper
        start: '1'
        end: '1000'

errorHandling:
  -
    errorCode: '404'
    errorHandler: Page
    errorContentSource: 't3://page?uid=14'

Это то, что вы хотите, я думаю, не так ли?

...