为同一个目标设置两个 routePaths 是个好主意吗?
Is having two routePaths for the same target a good idea?
我正在将扩展 news 的 realurl 配置迁移到路由增强器。 realurl 配置是 fixedPostVars
和 postVarSets
的混合。因此,新闻单一视图的网址以两种不同的方式构建:
- https://example.org/my-news-list-page/single-view-page/my-news-title
- https://example.org/my-news-list-page/single-view-page/news/my-news-title(包括名为 news 的
postVarSets
前缀)
现在有了路由增强器,我希望所有链接都没有前缀,但仍然能够解析有或没有前缀的链接。
在我的路由增强器配置中,我按照这个确切的顺序添加了以下两个 routePaths,这似乎工作得很好:
- { routePath: '/news/{news-title}', _controller: 'News::detail', _arguments: {'news-title': 'news'}}
- { routePath: '/{news-title}', _controller: 'News::detail', _arguments: {'news-title': 'news'}}
以相反的顺序,这不起作用,因为链接是使用前缀构建的。我想知道routePaths的处理顺序是否可靠。以这种方式使用 routePaths 是个好主意吗?还是我应该更好地在网络服务器级别使用重定向,这样工作会更多?
这应该有效。
如果您不进行重定向,则应考虑重复内容。我会检查 EXT:seo 是否添加了正确的规范 URL(这应该是第一个匹配的路由)以使搜索引擎满意。
但我认为这是一个有点未知的领域。我个人会向您的网络服务器添加一个简单的通用重定向。
我正在将扩展 news 的 realurl 配置迁移到路由增强器。 realurl 配置是 fixedPostVars
和 postVarSets
的混合。因此,新闻单一视图的网址以两种不同的方式构建:
- https://example.org/my-news-list-page/single-view-page/my-news-title
- https://example.org/my-news-list-page/single-view-page/news/my-news-title(包括名为 news 的
postVarSets
前缀)
现在有了路由增强器,我希望所有链接都没有前缀,但仍然能够解析有或没有前缀的链接。
在我的路由增强器配置中,我按照这个确切的顺序添加了以下两个 routePaths,这似乎工作得很好:
- { routePath: '/news/{news-title}', _controller: 'News::detail', _arguments: {'news-title': 'news'}}
- { routePath: '/{news-title}', _controller: 'News::detail', _arguments: {'news-title': 'news'}}
以相反的顺序,这不起作用,因为链接是使用前缀构建的。我想知道routePaths的处理顺序是否可靠。以这种方式使用 routePaths 是个好主意吗?还是我应该更好地在网络服务器级别使用重定向,这样工作会更多?
这应该有效。
如果您不进行重定向,则应考虑重复内容。我会检查 EXT:seo 是否添加了正确的规范 URL(这应该是第一个匹配的路由)以使搜索引擎满意。
但我认为这是一个有点未知的领域。我个人会向您的网络服务器添加一个简单的通用重定向。