Сообщаемая проблема на forge.typo3.org по-прежнему открыта (по состоянию на сентябрь 2019 г.).
На данный момент вы можете предоставить пользовательский декоратор PageType , который достигает желаемого результата.Даниэль Дорндорф, разработчик, который сообщил о проблеме, любезно разместил исходный код для этого:
/ Classes / Routing / Enhancer / CustomPageTypeDecorator.php
<?php
namespace Brand\Extensionname\Classes\Routing\Enhancer;
use TYPO3\CMS\Core\Routing\Enhancer\PageTypeDecorator;
use TYPO3\CMS\Core\Routing\RouteCollection;
/**
* Class CustomPageTypeDecorator
*/
class CustomPageTypeDecorator extends PageTypeDecorator
{
public const IGNORE_INDEX = [
'/index.html',
'/index/',
];
public const ROUTE_PATH_DELIMITERS = ['.', '-', '_', '/'];
/**
* @param \TYPO3\CMS\Core\Routing\RouteCollection $collection
* @param array $parameters
*/
public function decorateForGeneration(RouteCollection $collection, array $parameters): void
{
parent::decorateForGeneration($collection, $parameters);
/**
* @var string $routeName
* @var \TYPO3\CMS\Core\Routing\Route $route
*/
foreach ($collection->all() as $routeName => $route) {
$path = $route->getPath();
if (true === \in_array($path, self::IGNORE_INDEX, true)) {
$route->setPath('/');
}
}
}
}
ext_localconf.php
<?php
defined('TYPO3_MODE') or die();
// Register custom PageTypeDecorator:
$GLOBALS['TYPO3_CONF_VARS']['SYS']['routing']['enhancers'] += ['CustomPageType' => \Brand\Extensionname\Classes\Routing\Enhancer\CustomPageTypeDecorator::class];
Добавьте это в расширение шаблона, настройте пространство имен PHP (\Brand\Extensionname\
) и все готово.
config.yaml
PageTypeSuffix:
type: CustomPageType
default: '.html'
index: 'index'
map:
'.html': 0