Новости + реальный URL + i18n в Typo3 = ошибка cHash

Мне удалось заставить новости (tx_news) работать на языке по умолчанию. Потом мне захотелось локализовать новости, поэтому я сделал для них переводы. Однако, когда я получаю доступ к представлению списка для языка, отличного от языка по умолчанию, он терпит неудачу с

Request parameters could not be validated (&cHash comparison failed)

Сбойная ссылка не содержит cHash, выглядит так

http://host.com/mysite/en/about-us/

В чем может быть причина и как это исправить? Вот реальная настройка URL

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']=array (
  '_DEFAULT' => 
  array (
    'init' => 
    array (
      'enableCHashCache' => true,
      'enableCHashCache' => 1,
      'respectSimulateStaticURLs' => 0,
      'appendMissingSlash' => 'ifNotFile,redirect',
      //'adminJumpToBackend' => true,
      'enableUrlDecodeCache' => true,
      'enableUrlEncodeCache' => true,
      'emptyUrlReturnValue' => '/mysite/',
    ),
    'pagePath' => 
    array (
      'type' => 'user',
      'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
      'spaceCharacter' => '-',
      'languageGetVar' => 'L',
      'rootpage_id' => '1',
      'firstHitPathCache'=> '1',
    ),
    'preVars' => 
    array (
      0 => 
      array (
        'GETvar' => 'L',
        'valueMap' => 
        array (
          'cs' => '1',
        ),
        'noMatch' => 'bypass',
      ),
    ),
    'fixedPostVars' => array(
        '19' => array(
        array(
            'GETvar' => 'tx_news_pi1[controller]',
            'noMatch' => 'bypass',
        ),
        array(
            'GETvar' => 'tx_news_pi1[action]',
            'noMatch' => 'bypass',
        ),
        array(
            'GETvar' => 'tx_news_pi1[news]',
            'lookUpTable' => array(
                'table' =>
            'tx_news_domain_model_news',
            'id_field' => 'uid',
            'alias_field' => 'title',
            'addWhereClause' => ' AND NOT deleted',
            'useUniqueCache' => 1,
            'useUniqueCache_conf' => array(
                'strtolower' => 1,
                'spaceCharacter' => '-',
            ),
            'enable404forInvalidAlias' => '1',
            'languageGetVar' => 'L',
            'languageExceptionUids' => '',
            'languageField' => 'sys_language_uid',
            'transOrigPointerField' => 'l10n_parent',
        ),
      ),
    ),
    ),

    ),

);

person David Apltauer    schedule 20.01.2014    source источник
comment
Просто совет: не используйте CMS, если вы создаете собственное приложение. Я обнаружил, что сделать так, чтобы CMS подчинялась вашей воле, намного сложнее, чем просто строить с нуля. CMS хороши для простых сайтов; но если вы пытаетесь создать что-то с некоторыми расширенными функциями, вам следует просто создать его с нуля.   -  person user1477388    schedule 20.01.2014
comment
Я категорически против создания чего-либо с нуля, особенно если вы работаете в одиночку. Один человек не может реализовать безопасность, такую ​​как команда безопасности TYPO3, Symfony или Zend. Колесо изобретать не надо, разве что лучше колеса :) а одному человеку вряд ли удастся это сделать.   -  person smitrovic    schedule 11.02.2015


Ответы (4)


С этой ошибкой я долго боролся.

Перейдите в Typo3 Install Tool => All configuration и измените значение 1 => 0 для этого атрибута.

[FE] [pageNotFoundOnCHashError] = 0

Я надеюсь, что это решит проблему !!!

person Jimit Shah    schedule 06.06.2014
comment
@webMan: да, это снижает безопасность, помогает при обновлении TYPO3. - person Jimit Shah; 10.08.2017

Кажется, я исправил это, очистив tx_realurl_chashcache в базе данных.

person David Apltauer    schedule 20.01.2014
comment
это правильный ответ, если вы отключите [FE] [pageNotFoundOnCHashError], у вас больше не будет проверки typo3, и безопасность также будет проблемой. более новые базы данных не поддерживают это имя таблицы. Я опустошаю все это. - person webfacer; 13.07.2018

Пришлось отключить кеширование страницы. На моем сайте кажется, что параметр «no_cache» сбивает с толку расчет чаша. Таким образом, я могу сохранить - я считаю важным - параметр безопасности [FE][pageNotFoundOnCHashError] = 0

person InforMedic    schedule 17.11.2016

В версии Typo3 8.x:

щелкните модуль «Говорящие URL» в бэкэнде, а затем выполните «Очистить все записи»

Теперь, когда вы просматриваете внешний интерфейс, эти записи будут создаваться заново. И все должно работать нормально.

По сути, здесь мы удаляем все записи пути к странице для всех страниц, чтобы они создавались снова.

Также вы можете удалить записи для выбранной страницы, выбрав опцию «Удалить все записи для этой страницы».

person Vikram    schedule 11.11.2018