TYPO3:所有的URL都显示起始页(如何调试?

问题描述 投票:0回答:1

我有一个安装了TYPO3 9LTS的系统,在最后一次部署后,所有的URls都显示起始页。

我们的系统有三个部署步骤:开发、测试、生产。

我在dev上建立了新的功能,并让它工作,所以我把它部署到测试系统(包括更新到TYPO3的最新版本9.5.18)。在测试系统上(之前工作得很好),我只能看到起始页,因为所有的URL(计算正确)都会显示起始页。

使用 ext:realurl 我冷检查阵列 $_GET 来检查realurl解码了哪些参数。

TYPO3把检测到的页面uid和可能的其他参数存储在哪里?

也许我在路由增强器的YAML配置中出现了一些错误。如何检测路由增强器的配置错误? (虽然同样的配置在开发系统上也能用)


EDIT:

由于有多个答案暗示 uniqueInSite提示:也许有多个错误,但我有一个解决方案,使我的安装工作。我不能对域名使用条件。

只要没有办法系统性地发现URL解析中的错误,我就不回答这个问题。

也可能是有问题的 uniqueInSite但这通常会导致404,这是单独处理的,而且通常不会导致显示起始页。

typo3 slug typo3-9.x
1个回答
1
投票

我今天在一个安装上调试了5个小时的错误,这听起来极为相似,也许这能让你找到正确的方法。

从9.5.15升级到9.5.16后,突然有些Links停止了不稳定的工作。ErrorAHndling没有设置好,所以错误的结果是重定向到根页面。URL的生成没问题,但解析却不行。比如问题中的RouteEnhancer是PersistedAliasMapper,配置如下。

  -
    type: Extbase
    extension: News
    plugin: Pi1
    routes:
      -
        routePath: '/{news-title}'
        _controller: 'News::detail'
        _arguments:
          news-title: news
    defaultController: 'News::detail'
    aspects:
      news-title:
        type: PersistedAliasMapper
        tableName: tx_news_domain_model_news
        routeFieldName: path_segment

这是新闻的配置 基本上是从例子中复制过来的 This is the configuration for news, basically copy -pasted from the example. 在我的案例中,它被用来映射全局使用的实体。这在以前是可以完美工作的。

两个月前的一个(据说)未记录的变化引入了这段代码。

    // limit results to be contained in rootPageId of current Site
    // (which is defining the route configuration currently being processed)
    if ($this->slugUniqueInSite) {
        $results = array_values($this->filterContainedInSite($results));
    }

问题是,这将所有包含uniqueInSite的eval的实体视为仅限于网站。我的安装在所有站点上方的全局页面上使用了许多域模型的实体。这些不再被发现。

所以,同样,不确定这是否是你的问题。但如果这样做没有帮助,你可以尝试走和我一样的路线。在github上查找有关Mapper的源码 并参考某个时间段内的变化


0
投票

在迁移到9.x版本时,所有的页面都会得到一个slug。请看。\TYPO3/CMS/Install/Updates/PopulatePageSlugs。

重定向到哪个页面在:typo3sysextcoreClassesRoutingSiteMatcher.php:104中完成。


0
投票

我们也有同样的问题。

这是由于 [BUGFIX]尊重站点的路由持久化映射器。. 见 https:/github.comTYPO3TYPO3.CMScommit2a1bda4f7dd33dfdcd0782afd49924925a623511。

我们通过修改TCA的配置来暂时解决这个问题。tt_news:

--- Configuration/TCA/Overrides/tx_news_domain_model_news.php.org       2020-05-27 16:34:07.544603640 +0200
+++ Configuration/TCA/Overrides/tx_news_domain_model_news.php   2020-05-27 16:29:16.763232655 +0200
@@ -22,7 +22,7 @@
             ],
         ],
         'fallbackCharacter' => '-',
-        'eval' => 'uniqueInSite',
+        'eval' => 'uniqueInPid',
         'default' => ''
     ];
 }

0
投票

检查你的TCA。你可能有 'eval' => 'uniqueInSite' 配置.如果你的模型对象记录存储在你插入插件的根页面之外,这将导致404。

我从9.5.15升级到9.5.18后就发生了这种情况。j4k3的回答 为核心的变化。

设置 'eval' => 'unique' 在这种情况下,应该可以解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.