我正在运行TYPO3 6.2
我的日志中出现了一些错误,因为机器人/蜘蛛试图访问我网站上的错误网址;当我测试URL时,我得到一个TYPO3异常页面,其中包含有关相关扩展的大量详细信息:
在这种情况下,我想显示404页面。 低于我的参数:
[FE][pageNotFound_handling] = /404/
[FE][pageNotFound_handling_statheader]
[FE][pageUnavailable_handling] = /404/
当我测试http://www.mycompany.com/xxxxx_anything_xxxx/时出现同样的问题,我得到400个错误的请求页面,而不是我的404页面。
http://www.mycompany.com/404/顺便说一下,但404页面不显示。我错过了什么?
答案 0 :(得分:2)
您的网址在请求中将错误的值传递给实体。
这是您的发言网址:http://www.mycompany.com/xxxxx_anything_xxxx/
您的网址生成如下:index.php?tx_yourext_plugin[entity]=xxxxx_anything_xxxx
您的控制器中还有一个操作,如下所示:
/**
* @param \Vendor\ExtensionName\Domain\Model\Entity $entity
*/
public function actionNameAction(\Vendor\ExtensionName\Domain\Model\Entity $entity)
{
...
}
这是错误的,因为你发送了一个字符串,标识符是uids, 并且必须是现有的UID。
RealURL修复
[
'GETvar' => 'tx_yourext_plugin[entity]',
'lookUpTable' => [
'table' => 'tx_yourext_domain_model_entity',
'id_field' => 'uid',
'alias_field' => 'IF(path_segment!="",path_segment,title)',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'languageGetVar' => 'L',
'languageExceptionUids' => '',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'expireDays' => 180,
'enable404forInvalidAlias' => true
]
]
或者从您的操作中删除您的依赖注入,它将是这样的:
/**
* @param string $entity
*/
public function actionNameAction($entity){...}
解决此问题的另一种方法是使用TypeConverters。 https://api.typo3.org/typo3cms/8/html/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_property_1_1_type_converter_1_1_object_converter.html
<强>更新强>
另一个提示是在typoscript中使用config.contentObjectExeceptionHandler = 1
。但首先我会尝试解决该链接的问题,因为你传递了不同的数据类型。使用realURL,您可以控制动态URL中应传递的数据类型。