Вы получаете 404 Not Found
, потому что произошла ошибка cHa sh. Если вы сгенерируете ссылку через TYPO3 (например, с f:link
или typolink
) и ваша конфигурация маршрутизации верна, будет добавлен правильный ?cHash=
-параметр.
Если ваш пользовательский параметр делает вообще не меняйте вывод HTML, вы можете добавить его к [FE][cacheHash][excludedParameters]
(в «Установках для всей установки»). Имейте в виду, что это означает, что различные значения этого параметра будут все go для одной и той же записи кэша. Таким образом, если вам нужно что-то сделать с параметром, ваш единственный вариант - JavaScript.
Другой случай довольно распространен, но я добавлю все условия для этого случая:
Если вам нужно изменить вывод HTML в зависимости от этого параметра и ( вам абсолютно не нужны ?cHash
или вы не можете заставить TYPO3 сгенерировать эту ссылку ) и вы не можете использовать PersistedAliasMapper
(так как параметр является свободным текстом и не привязан ни к чему в базе данных) и вы не можете использовать другие картографы (например, StaticRangeMapper
), ваш единственный вариант - написать собственный аспект.
Посмотрите здесь https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Routing/ExtendingRouting.html - в вашем случае я будет искать вдохновение в \TYPO3\CMS\Core\Routing\Aspect\StaticRangeMapper
. Желательно максимально сузить возможные значения (чтобы предотвратить переполнение кэша, причина, по которой cHash
был добавлен в TYPO3), но вы сможете избавиться от ?cHash
.
* 1040. *
Просто для полноты: так и должно быть. В настоящее время существуют некоторые несоответствия между кэшированными и не кэшированными страницами и страницами с «расширенным маршрутом» (например, страницами с подробностями) и страницами «pagetree», независимо от того, выдан ли ошибка cHa sh. Но если вы относитесь к параметрам, подобным предлагаемым здесь, я думаю, вы в безопасности на будущее.