此错误发生在带有 piBase 扩展和 realurl 2.0.15 的 TYPO3 7.6.10 中:
在这个扩展中,我正在检查一个 GET 参数,例如一个国家。如果未提供此参数,我将重定向到同一页面,并使用默认国家/地区作为参数:
if(!$this->piVars['country']) {
$this->piVars['country'] = 'germany';
\TYPO3\CMS\Core\Utility\HttpUtility::redirect($this->pi_linkTP_keepPIvars_url(array(), true), \TYPO3\CMS\Core\Utility\HttpUtility::HTTP_STATUS_303);
}
这意味着,访问者例如调用 url www.mypage.com/list/ 并被重定向到 www.mypage.com/list/germany/
这工作正常,但经过一段时间后,一些访问者是一个页面,重定向停止工作。在浏览器中打开 www.mypage.com/list/ 时,会显示某个国家/地区的页面(不是默认页面,例如国家“法国”)。这意味着,TYPO3 在页面 www.mypage.com/list/france/ 上为页面 www.mypage.com/list/ 创建了一个缓存条目,但是对于这个 url,由于重定向,不应该创建一个缓存条目.
我可以通过将页面的缓存时间设置为 1 分钟来重现此错误。然后我等待一分钟,然后加载网址 www.mypage.com/list/france/。现在,当打开 www.mypage.com/list/ 时,没有重定向并显示法国。
禁用 realurl(或仅从 realurl 配置中删除参数“country”)时,不会发生此错误。