#typo3 #typo3-8.x #realurl
#typo3 #typo3-8.x #realurl
Вопрос:
У меня есть сгенерированный путь с различными категориями и продуктами, созданными с собственным расширением. Может быть одна, две или три категории, плюс продукт ниже второй или третьей категории.
Примеры URL-адресов, которые должны работать:
/mainCategory/
/mainCategory/secondCategory/
/mainCategory/secondCategory/product-title
/mainCategory/secondCategory/thirdCategory/
/mainCategory/secondCategory/thirdCategory/product-title
Проблема теперь в том, что для отображения продукта не требуется третья категория.
Моя конфигурация:
'fixedPostVars' =>
[
'produkt' =>
[
0 =>
[
'GETvar' => 'tx_vendor_plugin[mainCategory]',
'lookUpTable' =>
[
'table' => 'sys_category',
'id_field' => 'uid',
'alias_field' => 'title',
'languageGetVar' => 'L',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'useUniqueCache' => 1,
'useUniqueCache_conf' =>
[
'strtolower' => 1,
'spaceCharacter' => '-',
],
],
],
1 =>
[
'GETvar' => 'tx_vendor_plugin[subCategory]',
'lookUpTable' =>
[
'table' => 'sys_category',
'id_field' => 'uid',
'alias_field' => 'title',
'languageGetVar' => 'L',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'useUniqueCache' => 1,
'useUniqueCache_conf' =>
[
'strtolower' => 1,
'spaceCharacter' => '-',
],
],
],
2 =>
[
'GETvar' => 'tx_vendor_plugin[thirdCategory]',
'lookUpTable' =>
[
'table' => 'sys_category',
'id_field' => 'uid',
'alias_field' => 'title',
'languageGetVar' => 'L',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'useUniqueCache' => 1,
'useUniqueCache_conf' =>
[
'strtolower' => 1,
'spaceCharacter' => '-',
],
],
],
3 =>
[
'GETvar' => 'tx_vndor_plugin[product]',
'lookUpTable' =>
[
'table' => 'tx_vendor_domain_model_product',
'id_field' => 'uid',
'alias_field' => 'title',
'languageGetVar' => 'L',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'useUniqueCache' => 1,
'useUniqueCache_conf' =>
[
'strtolower' => 1,
'spaceCharacter' => '-',
],
],
],
],
Когда я добавляю noMatch => bypass
в thirdCategory, в нем не отображается никакая третья категория. Невозможно получить доступ к каждой третьей категории.
Когда я использую его без noMatch => bypass
, в URL-адресе для продуктов без третьей категории есть пустой параметр path: /mainCategory/secondCategory//product-title
Кто может мне с этим помочь?
Ответ №1:
Этот вопрос был задан и на него ответил Дмитрий в TYPO3 Slack некоторое время назад:
Другими словами: вы не можете иметь необязательные параметры в начале или середине postVar.
Таким образом, вердикт заключается в том, что это невозможно с помощью RealURL.
Пример:
/mainCategory/secondCategory/product-title/
/mainCategory/secondCategory/thirdCategory/
Как RealURL должен знать, что декодировать product-title
и thirdCategory
здесь? Это неоднозначно, поскольку это может быть продукт или категория. Вот почему RealURL использует пустые сегменты пути для всего, что может быть необязательным в начале / середине.
Комментарии:
1. Спасибо. Если я использую метод empty path, это дает мне
File not found
в FE. Что я могу сделать против этого?2. Откуда приходит это сообщение? Apache / TYPO3 / Другое?
3. Не знаю. Это выглядит как echo и die() после него. Без исключений.
4. Затем попробуйте
grep
свой код для этого. Это также может быть сообщение от PHP-FPM или вашего прокси, если вы его используете.