TYPO3 - 404页面而不是例外

时间:2018-06-01 08:07:24

标签: typo3 typo3-6.2.x

我正在运行TYPO3 6.2

我的日志中出现了一些错误,因为机器人/蜘蛛试图访问我网站上的错误网址;当我测试URL时,我得到一个TYPO3异常页面,其中包含有关相关扩展的大量详细信息:

enter image description here

在这种情况下,我想显示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页面不显示。我错过了什么?

1 个答案:

答案 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中应传递的数据类型。