繁体   English   中英

TYPO3 RealURL重定向循环,用于具有相同标题的链接和页面

[英]TYPO3 RealURL redirect loop for link and page with same title

经过多次调试后,大多数情况似乎无关紧要。 阅读EDIT2了解您需要了解的内容。

我最近接手了TYPO3网页的开发,并在realurl_conf.php中添加了两个新的postVar。

它在主要语言上可以正常工作,但是在某些页面上以不同于主要语言查看时,我陷入了重定向循环。

可以通过打开网站来复制循环(临时重定向-代码307),例如 http://example.com/subpage/?L=2 ,其中2是英语的语言ID, subpage是英语的标题。 如果我通过链接 http://example.com/unterseite/?L=2打开页面, unterseite得到正确的页面,而 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调试后,我意识到有一个标题为“子页面”的页面,还有一个辅助菜单,其中包含指向该页面的链接。 打开URL example.com/subpage/时,它检测到子页面是子页面的链接,并重定向到子页面。 因此,如果有多个匹配项,我正在寻找一种使页面优先于链接的方法。

我猜这是错误的,应该删除:

'valueDefault' => 'de',

L参数的默认值应在TypoScript中设置,而不应在RealUrl中设置。 我认为,如果使用数字值,则必须在此处输入。

TYPO3在“ _.htaccess”下提供了一个“ .htacess”文件。 从TYPO3 6.2.4中我得到:

RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ $1.$3 [L]

# Main URL rewriting.
# For httpd.conf, use this line instead of the next one:
# RewriteRule .* /TYPO3root/index.php [L]
RewriteRule .* index.php [L]

将您的“ .htacess”文件与TYPO3的“ _.htaccess”中的条目进行比较。 也许您在那里缺少L参数。

您应该提供有关您网站上重定向的详细示例。

今天,在升级TYPO3和realurl之后,我刚刚遇到了第二个遇到此问题的站点。

TL; DR解决方案: 将快捷方式的“语音URL路径段”更改为不同于name的任何内容

我这边的情况是:

  • TYPO3 6.2.27 ;
  • realurl 2.1.1 / 2.1.4 (这是到目前为止遇到的两种情况),但这可能在所有2.x版本中都发生;
  • 页面和快捷方式在相同的“路径级别”上具有相同的名称 请记住,这可以是相同的页面树级别,也可以是不同的页面树级别,但是要使父页面具有选中的“ 从语音URL排除 ”复选框,以使两个元素处于相同的“路径级别”。

在我看来,这仅在安装realurl 2.x时出现。 升级之前,两个站点的realurl为1.12.x或1.13.x,并且没有任何问题。

在代码级解决问题之前, 可能的解决方案将快捷方式的“ Speaking URL path segment”更改为与name不同的任何内容 路径段没有在任何地方使用,但是更改它会使您摆脱麻烦。

这在我这边停止了两个站点上几个页面/快捷方式对的重定向。

realurl往复循环的另一个来源:

对我来说,这是一个损坏的手动realurl配置,其中没有设置rootpage_id 切换到自动配置或更改为正确的rootpage_id均可解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM