You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3 9.5.8中用TypoScript生成tx_news友好URL的问题

TYPO3 tx_news 生成友好详情URL的TypoScript配置方案

你现在遇到的问题我很熟悉——明明已经配置好了tx_news的友好URL,但用CONTENT对象手动生成链接时还是出现带参数的格式,其实只要调整TypoScript里的typolink配置,就能让它调用TYPO3的路由系统生成和列表页一致的友好URL。

修改后的TypoScript代码

把你原来的renderObj里的标题链接部分替换成下面的配置:

news = CONTENT
news {
  table = tx_news_domain_model_news
  select {
    pidInList = 24
    max = 3
    orderBy = datetime DESC
  }
  renderObj = COA
  renderObj {
    1 = TEXT
    1.field = datetime
    1.strftime = %d. %B %Y
    1.wrap = <p>|</p>
    2 = TEXT
    2 {
      field = title
      typolink {
        # 优先使用新闻的自定义内部链接(如果设置了的话)
        parameter.override.field = internalurl
        # 当没有自定义链接时,调用tx_news的详情路由生成友好URL
        route = tx_news_detail
        route.arguments {
          news = TEXT
          news.field = uid
        }
        useCacheHash = 0
      }
    }
  }
  renderObj.wrap = <div class="header-news-item">|</div>
}

关键改动说明

  • 删掉了原来手动拼接additionalParams的代码,改用route = tx_news_detail直接指定tx_news的详情页路由规则
  • 通过route.arguments传递新闻的uid参数,让TYPO3根据你已配置的站点路由规则,自动生成带新闻标题slug的友好URL
  • 保留了parameter.override.field = internalurl,确保如果新闻设置了自定义内部跳转链接,依然优先使用该链接

额外注意事项

要确保你的站点配置(config.yaml)里已经正确设置了tx_news的详情路由,类似这样的配置:

routes:
  -
    routePath: '/{news-title}'
    _controller: 'News::detail'
    _arguments:
      news-title: news

你之前已经确认友好URL功能正常运行,这部分应该已经配置妥当,无需额外调整。

这样修改后,生成的链接就会和tx_news列表页跳转详情页的格式完全一致啦!

内容的提问来源于stack exchange,提问作者Marcel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:18:56