【发布时间】:2016-09-18 13:19:16
【问题描述】:
此错误发生在带有 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”)时,不会发生此错误。
【问题讨论】:
-
哪个 TYPO3 版本?
-
您是否使用了 chash 缓存,您的参数是否包含在 chash 计算中?
-
TYPO3 6.2.15 和 7.6.10
-
当我禁用 realurl 时,我看到了扩展生成的链接的 cHash 参数。我也不排除“cHashExcludedParameters”中的参数“country”,所以我假设这个参数包含在cHash计算中。
-
我可以重现此错误:我将页面的缓存时间设置为 1 分钟。然后我等待一分钟,然后加载网址 www.mypage.com/list/france/。现在,打开 www.mypage.com/list/ 时,没有重定向,而是显示法国。
标签: redirect caching typo3 realurl pibase