TYPO3 - страница 404 вместо исключения - PullRequest
0 голосов
/ 01 июня 2018

Я использую TYPO3 6.2

В моем журнале произошли некоторые ошибки, потому что роботы / пауки пытались получить доступ к плохим URL на моем веб-сайте;Когда я тестирую 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 Bad, а не мою страницу 404.

http://www.mycompany.com/404/ работаетздорово кстати, но 404 страницы не отображаются.Чего мне не хватает?

1 Ответ

0 голосов
/ 01 июня 2018

Ваш URL передает неправильное значение сущности в запросе.

Это ваш говорящий URL: http://www.mycompany.com/xxxxx_anything_xxxx/ И ваш URL сгенерирован так: 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

ОБНОВЛЕНИЕ

Еще один совет - использовать config.contentObjectExeceptionHandler = 1 в опечатке.Но сначала я бы попытался решить проблему с этой ссылкой, потому что вы передаете туда разные типы данных.Используя realURL, у вас есть небольшой контроль над тем, какие данные должны передаваться в динамическом URL.

...