[英]TYPO3: RealURL + tt_news + 404 doesnt work
我想给tt_news的SINGLE视图所在的页面(id = 57)提供一个特殊的URL,所以我用它来配置RealURL:
'fixedPostVars' => array(
'57' => array(
array(
'GETvar' => 'tx_ttnews[tt_news]',
'lookUpTable' => array(
'table' => 'tt_news',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),
),
),
问题在于404中的重定向无法正常工作:
http://www.mypage.com/blog/artikel/asdasd --->效果很好。 转到第404页。
http://www.mypage.com/blog/artikel/whatever/whateveragain --->效果很好。 转到第404页。
http://www.mypage.com/blog/artikel/无论如何--->都不会重定向到404。我收到“未提供news_id”。
对于TYPO3
,该页面存在并且包含一个插件是很正常的,因此不能将其视为不存在,它不在乎扩展没有获取所有必需的参数。
有两种解决方案,我建议编写一个小扩展名,该扩展名将在页面渲染过程开始时运行,它将检查参数是否存在以及是否指向现有且未禁用的tt_news
记录,否则应返回完全合格的404。状态并重定向到您的404页面-这对于seo而言将非常有用 。
function main($content, $conf) {
$newsParams = t3lib_div::_GET('tx_ttnews');
if (is_array($newsParams) && intval($newsParams['tt_news']) > 0) {
$foundItems = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid', 'tt_news', 'deleted=0 AND hidden=0 AND uid=' . intval($newsParams['tt_news']));
if (count($foundItems) == 1) {
return null; // if news exists and is available - return null
}
}
// If above condition aren't met, set redirect header
// return null after that to avoid futher code processing
header('Location: http://yourdomain.tld/404.html');
return null;
}
仅在TypoScript页面= 57上添加以下行:
page.1 < plugin.tx_yourext_pi1
更加简单,它只是检查SINGLE视图所需的URL中的参数:&tx_ttnews [tt_news] = 123是否存在且大于0,并且不只是将重定向标记添加到页面的<head>
部分(仅从顶部开始编写)我的头,所以自己调试吧,请)
在您的页面57
添加带有Template
模块的extension teamplate
,并在设置使用条件下检查参数是否存在:
[globalVar = GP:tx_ttnews|tt_news < 1]
page.headerData.1 = TEXT
page.headerData.1.value = <meta http-equiv="refresh" content="0;url=http://www.mypage.com/404">
[global]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.