TYPO3: дублирующая косая черта Realurl с tx_news - решена, но не понята - PullRequest
0 голосов
/ 01 июня 2018

Я просто использую официальную конфигурацию realurl в документации tx_news .Это вызвало двойную косую черту в моем URL.Это выглядело бы так:

domain.com / post // post-title

Чтобы исправить это, я обнаружил, что должен либо удалить, либо поместить следующие строки после tx_newspil [news] внутри fixedPostVars:

До:

'fixedPostVars' => [
    'newsDetailConfiguration' => [
        [
            'GETvar' => 'tx_news_pi1[action]',
            'valueMap' => [
                '' => 'detail',
            ],
            'noMatch' => 'bypass'
        ],
        [
            'GETvar' => 'tx_news_pi1[controller]',
            'valueMap' => [
                '' => 'detail',
            ],
            'noMatch' => 'bypass'
        ],
        [
            'GETvar' => 'tx_news_pi1[news]',
            'lookUpTable' => [
                'table' => 'tx_news_domain_model_news',
                '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
            ]
        ]
    ]
]

После:

'fixedPostVars' => [
    'newsDetailConfiguration' => [
        [
            'GETvar' => 'tx_news_pi1[news]',
            'lookUpTable' => [
                'table' => 'tx_news_domain_model_news',
                '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
            ]
        ],
        [
            'GETvar' => 'tx_news_pi1[action]',
            'valueMap' => [
                '' => 'detail',
            ],
            'noMatch' => 'bypass'
        ],
        [
            'GETvar' => 'tx_news_pi1[controller]',
            'valueMap' => [
                '' => 'detail',
            ],
            'noMatch' => 'bypass'
        ]
    ]
]

Либо их переключение, либо простое удаление частей контроллера / действия исправило дублирующую косую черту.Теперь я хотел бы понять, почему это так, так как я новичок в PHP, я действительно не понимаю.

Я ценю всю помощь!

** Только что протестировал, толькочасть действия должна была быть перемещена или удалена для устранения дублирующего слэша

1 Ответ

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

Это происходит потому, что конфигурация REALURL получает параметры в порядке добавления.

Давайте возьмем первую конфигурацию REALURL из вашего поста.В этой конфигурации я ожидаю, что мой URL будет таким: /page/action/controller/post-title.

Что происходит, если у вас есть плагин новостей с параметрами action и controller, установленными на странице поста, а затем нетпередайте action и controller в URL, поэтому у вас есть double slashes, потому что action и controller пусты.

Параметры по умолчанию (имя контроллера эквалайзера, имя действия и т. д.), параметры, для которых значение не требуется, должны находиться в конце конфигурации, как и ваша последняя конфигурация.

...