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

TYPO3:所有URL都显示起始页(如何调试?),typo3,slug,typo3-9.x,Typo3,Slug,Typo3 9.x,我安装了TYPO3 9LTS,其中所有URL都显示上次部署后的起始页 我们的系统的部署分为三个步骤:开发、测试、生产 我已经在dev上构建了新功能并使其正常工作,所以我将其部署到测试系统中,包括对TYPO3的最新版本9.5.18的更新。在之前运行良好的测试系统上,我只能看到startpage,因为所有正确计算的URL都会显示startpage 使用ext:realurl,我将冷检查数组$\u以检查realurl解码了哪些参数 TYPO3在哪里存储检测到的页面uid和可能的其他参数 也许我在rou

我安装了TYPO3 9LTS,其中所有URL都显示上次部署后的起始页

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

我已经在dev上构建了新功能并使其正常工作,所以我将其部署到测试系统中,包括对TYPO3的最新版本9.5.18的更新。在之前运行良好的测试系统上,我只能看到startpage,因为所有正确计算的URL都会显示startpage

使用ext:realurl,我将冷检查数组$\u以检查realurl解码了哪些参数

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

也许我在routeEnhancers的YAML配置中有一些错误。 如何检测routeEnhancers配置中的错误?虽然相同的配置在dev系统上工作

编辑:

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

只要没有系统地发现URL解析中的错误的解决方案,我就不回答这个问题


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

在迁移到9.x版时,所有页面都会出现一个slug。请参阅:\TYPO3\CMS\Install\Updates\PopulatePageSlugs


重定向到哪个页面是在:typo3/sysext/core/Classes/Routing/SiteMatcher.php:104中完成的,在迁移到9.x版本的过程中,所有页面都会得到一个slug。请参阅:\TYPO3\CMS\Install\Updates\PopulatePageSlugs

重定向到哪个页面是在:typo3/sysext/core/Classes/Routing/SiteMatcher.php:104

中完成的,今天我已经在其中一个安装上调试了5个小时的错误,这听起来非常相似,所以也许这让您走上了正确的道路

从9.5.15升级到9.5.16后,一些链接突然停止不稳定工作。未设置ErrorAHndling,因此该错误导致重定向到根页面。URL的生成很好,但解析不起作用。例如,所讨论的RouteHander是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
这是新闻的配置,基本上是从示例中复制粘贴的。在我的例子中,它用于映射全局使用的实体。这在以前工作得很好

两个月前afaik未记录的变更引入了以下代码:

    // 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上查找相关映射程序的源代码,并参考特定时间范围内的更改。

我今天已经在其中一个安装上调试了5个小时的错误,这听起来非常相似,因此可能这会让您走上正确的道路

从9.5.15升级到9.5.16后,一些链接突然停止不稳定工作。未设置ErrorAHndling,因此该错误导致重定向到根页面。URL的生成很好,但解析不起作用。例如,所讨论的RouteHander是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
这是新闻的配置,基本上是从示例中复制粘贴的。在我的例子中,它用于映射全局使用的实体。这在以前工作得很好

两个月前afaik未记录的变更引入了以下代码:

    // 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上查找相关映射程序的源代码,并参考特定时间范围内的更改。

我们遇到了相同的问题

这是由[BUGFIX]尊重路由持久化映射程序的站点引起的。 看

我们通过更改tt_news的TCA配置临时修复了此问题:


我们也有同样的问题

这是由[BUGFIX]尊重路由持久化映射程序的站点引起的。 看

我们通过更改tt_news的TCA配置临时修复了此问题:


检查你的TCA。您可能已经配置了“eval”=>“uniqueInSite”。 如果模型对象记录存储在插入插件的根页面之外,则会导致404

这发生在我从9.5.15升级到9.5.18之后。 检查芯的变化

设置“eval”=>“unique”应该可以修复它
在这种情况下。

检查您的TCA。您可能已经配置了“eval”=>“uniqueInSite”。 如果模型对象记录存储在插入插件的根页面之外,则会导致404

这发生在我从9.5.15升级到9.5.18之后。 检查芯的变化



设置“eval”=>“unique”应该可以解决这种情况。

我也有同样的问题。对我来说,这是因为htaccess中有一个转发到https的功能,它工作得很好,但在站点配置中有一个常规的http路径。页面看起来应该是这样的,但所有页面都显示了主页内容,同时地址中有正确的slug。将站点配置更改为https后,一切正常。愚蠢的我:

我也有同样的问题。对我来说,这是因为htaccess中有一个转发到https的功能,它工作得很好,但在站点配置中有一个常规的http路径。页面看起来应该是这样的,但所有页面都显示了主页内容,同时地址中有正确的slug。将站点配置更改为https后,一切正常。愚蠢的我:

我没有从打字错误3 8更新到9。这是9.5.15到9.5.18之间的更新。而且这个网站以前也在运行。导航工作正常。所有页面都显示了。我没有从打字错误3 8更新到9。这是9.5.15到9.5.18之间的更新。而且这个网站以前也在运行。导航工作正常。所有页面都显示出来了。同时我找到了问题的原因。这导致了一场灾难。但这是运气,而不是系统调试。似乎没有语法检查或跟踪,唯一的方法是调试底层PHP代码:-完全确认。调试是带有RouteEnhancers的pita。不得不修改核心代码是可怕的。升级到Typo3 10可能会解决问题吗?不会。同样的补丁也进入了版本10s的代码库。这对我来说并不重要,因为我学会了在进入LTS阶段之前永远不要安装新的TYPO 3版本。与此同时,我找到了问题的原因。这导致了一场灾难。但这是运气,而不是系统调试。似乎没有语法检查或跟踪,唯一的方法是调试底层PHP代码:-完全确认。调试是带有RouteEnhancers的pita。不得不修改核心代码是可怕的。升级到Typo3 10可能会解决问题吗?不会。同样的补丁也进入了版本10s的代码库。这对我来说并不重要,因为我学会了在进入LTS阶段之前永远不要安装新的TYPO 3版本。大约一年前我也遇到过同样的问题。不幸的是,我忘了它到底是什么,但它与routeEnhancer无关。我的问题是:-您的系统是否运行在代理之后?因此,设置是否正确您的站点配置正确吗?-服务器.htaccess的设置是否正确?我提醒它与这些问题有关……它也可能与TLS有关,因此与服务器级别的设置有关。如果我能记住:-/正如下面的回答中提到的:同时,我找到了问题的原因,域无法配置上下文条件。这导致了一场灾难。但这是运气,而不是系统调试。似乎没有语法检查或跟踪,唯一的方法是调试底层PHP代码:-大约一年前我也有同样的问题。不幸的是,我忘了它到底是什么,但它与routeEnhancer无关。我的问题是:-您的系统是否运行在代理之后?因此,设置是否正确您的站点配置正确吗?-服务器.htaccess的设置是否正确?我提醒它与这些问题有关……它也可能与TLS有关,因此与服务器级别的设置有关。如果我能记住:-/正如下面的回答中提到的:同时,我找到了问题的原因,域无法配置上下文条件。这导致了一场灾难。但这是运气,而不是系统调试。似乎没有语法检查或跟踪,唯一的方法是调试底层PHP代码:-