【发布时间】:2014-08-14 11:53:29
【问题描述】:
经过多次调试后,大部分内容似乎都无关紧要。阅读 EDIT2 了解您需要了解的内容。
我最近接手了一个 TYPO3 网页的开发,并在 realurl_conf.php 中添加了两个新的 postVars
它在主要语言上按预期工作,但在某些页面上以不同于主要语言的方式查看它时,我陷入了重定向循环。
循环(临时重定向 - 代码 307)可以通过打开网站来复制,例如 http://example.com/subpage/?L=2,其中 2 是英语的语言 ID,subpage 是英语的标题。如果我通过链接http://example.com/unterseite/?L=2 打开页面,我会得到正确的页面,而unterseite 是主要语言的页面标题。
很遗憾,我看不到模式,即哪些页面受到影响。共有 3 个页面显示了这种不当行为,其中两个具有子子页面,第三个是没有子页面的标准页面。其他 11 个页面按预期工作,另外 2 个页面有子页面。
所有页面都是标准内容类型。
一个失败的 realurl_conf.php 看起来像这样:
<?php
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array (
'_DEFAULT' => array (
'pagePath' => array (
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
),
),
);
我似乎没有找到问题,上周我一直在谷歌上搜索。
非常感谢任何提示或具体帮助。
编辑:删除了不必要的行。剩余代码可靠出现问题 使用 tx_realurl 类(非高级),不会出现问题,但行为不如预期。
EDIT2: 经过大量的 Xdebug 调试后,我意识到有一个标题为 Subpage 的页面,并且有一个包含指向该页面的链接的二级菜单。打开 URL example.com/subpage/ 时,它检测到子页面是指向子页面的链接并重定向到子页面。所以我正在寻找一种让页面优先于链接的方法,如果有多个匹配项。
【问题讨论】:
-
“让页面优先于链接”是什么意思?什么二级菜单?
-
所以表 tx_realurl_cache 中有两个具有相同 uri 的条目。一个具有真实页面的 ID(标准类型),另一个具有指向第一个提到的页面的链接的 ID。二级菜单只是一个文件夹,代表一个特殊菜单,有条件地显示,但大部分时间隐藏。该问题仅出现在非默认语言中,并且具有一定的随机性 - 它取决于两个相同路径中的哪一个首先写入数据库。
标签: typo3 typo3-6.2.x