Всем привет,
вот моё решение:
Extensions: aeurltool, realurl
"urltoolconf_realurl.php" ->
<?php
$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
	'init' => array( 
		'enableCHashCache' => 1, 
		'appendMissingSlash' => 'ifNotFile', 
		'enableUrlDecodeCache' => 1, 
		'enableUrlEncodeCache' => 1, 
    ), 
	'redirects' => array(),
	'preVars' => array( 
		array(
			'GETvar' => 'backPID',
			'noMatch' => 'bypass',
		),
		array( 
			'GETvar' => 'no_cache', 
			'noMatch' => 'bypass', 
		), 
		array(
			'GETvar' => 'L',
			'valueMap' => array(
				'de' => '0',	
				'ba' => '3',
			),
			'valueDefault' => 'de',
			'noMatch' => 'bypass',
		),		
	), 
	'pagePath' => array( 
		'type' => 'user', 
		'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main', 
		'spaceCharacter' => '-', 
		'languageGetVar' => 'L',  
		'rootpage_id' => 1, 
		'expireDays' => 1,
            	'firstHitPathCache' => 1,
	),  
	'fixedPostVars' => array(
		'news' => array(           
			array(
				'GETvar' => 'tx_ttnews[pointer]',
				'valueMap' => array(),
				'noMatch' => 'bypass',
			),
			array(
				'GETvar' => 'tx_ttnews[tt_news]',
				'lookUpTable' => array(
					'table' => 'tt_news',
					'id_field' => 'uid',
					'alias_field' => 'title',
					'addWhereClause' => ' AND NOT deleted',
					'useUniqueCache' => 1,
					'useUniqueCache_conf' => array(
						'strtolower' => 1,
						'spaceCharacter' => '-',
					),
					'languageGetVar' => 'L',
					'languageExceptionUids' => '',
					'languageField' => 'sys_language_uid',
					'transOrigPointerField' => 'l18n_parent',
					'autoUpdate' => 1,
					'expireDays' => 180,
				),
			),
		),
    ),
	'postVarSets' => array(
		'_DEFAULT' => array(
			'datum' => array(
				array(
					'GETvar' => 'tx_ttnews[year]' ,
				),
				array(
					'GETvar' => 'tx_ttnews[month]' ,
					'valueMap' => array( 
						'januar' => '01', 
						'februar' => '02', 
						'maerz' => '03', 
						'april' => '04', 
						'may' => '05', 
						'juni' => '06', 
						'juli' => '07', 
						'august' => '08', 
						'september' => '09', 
						'oktober' => '10', 
						'november' => '11', 
						'dezember' => '12', 
					) 
				),
				array(
					'GETvar' => 'tx_ttnews[tt_news]',
					'lookUpTable' => array( 
						'table' => 'tt_news', 
						'id_field' => 'uid', 
						'alias_field' => 'title', 
						'maxLength' => 20,
						'addWhereClause' => ' AND NOT deleted', 
						'useUniqueCache' => 1, 
						'useUniqueCache_conf' => array( 
							'strtolower' => 1, 
							'spaceCharacter' => '-',  
						),
					),
				),
			),
			'period' => array (
				array (
					'condPrevValue' => -1,
					'GETvar' => 'tx_ttnews[pS]',
				),
				array (
					'GETvar' => 'tx_ttnews[pL]',
				),
				array (
					'GETvar' => 'tx_ttnews[arc]',
					'valueMap' => array(
						'non-archived' => -1,
					),
				),
			),
			'seite' => array (
				array (
					'GETvar' => 'tx_ttnews[pointer]',
					'valueMap' => array('weiter' => '1','weiter' => '2',)
				),
				array(
					'GETvar' => 'tt_products[begin_at]',
					'valueMap' => array(
						'erste' => '0',	
						'zweite' => '3',
						'dritte' => '4',
						'vierte' => '5',
						'fuenfte' => '6',
					),
				),
			),
			'kategorie' => array (
				array(
					'GETvar' => 'tx_ttnews[cat]',
					'lookUpTable' => array(
						'table' => 'tt_news_cat', 
						'id_field' => 'uid', 
						'alias_field' => 'title', 
						'maxLength' => 20,
						'addWhereClause' => ' AND NOT deleted', 
						'useUniqueCache' => 1, 
						'useUniqueCache_conf' => array( 
							'strtolower' => 1, 
							'spaceCharacter' => '-',    
						),
					),
				),
				array(
					'GETvar' => 'tt_products[cat]',
					'lookUpTable' => array(
						'table' => 'tt_products_cat',
						'id_field' => 'uid',
						'alias_field' => 'title',
						'maxLength' => 20,
						'addWhereClause' => ' AND NOT deleted',
						'useUniqueCache' => 1,
						'useUniqueCache_conf' => array(
							'strtolower' => 1,
							'spaceCharacter' => '-',
						),
					),
				),
			),
			'artikel' => array(
				array (
					'GETvar' => 'tx_ttnews[tt_news]',
					'lookUpTable' => array (
						'table' => 'tt_news',
						'id_field' => 'uid',
						'alias_field' => 'title',
						'maxLength' => 20,
						'addWhereClause'=> 'AND NOT deleted',
						'useUniqueCache'=> 1,
						'useUniqueCache_conf' => array (
							'strtolower' => 1,
							'spaceCharacter' => '-',
						),
					),
				),
				array (
					'GETvar' => 'tx_ttnews[backPid]',
				),
				array (
					'GETvar' => 'tx_ttnews[swords]',
				),
			),
			'bestellung' => array(
				array(
					'GETvar' => 'tt_products[backPID]',
					'lookUpTable' => array(
						'table' => 'pages',
						'id_field' => 'uid',
						'alias_field' => 'title',
						'maxLength' => 20,
						'addWhereClause' => ' AND NOT deleted',
						'useUniqueCache' => 1,
						'useUniqueCache_conf' => array(
							'strtolower' => 1,
							'spaceCharacter' => '-',
						),
					),
				),
			),
			'produkt' => array(
				array(
					'GETvar' => 'tt_products[product]',
					'lookUpTable' => array(
						'table' => 'tt_products',
						'id_field' => 'uid',
						'alias_field' => 'title',
						'maxLength' => 20,
						'addWhereClause' => ' AND NOT deleted',
						'useUniqueCache' => 1,
						'useUniqueCache_conf' => array(
							'strtolower' => 1,
							'spaceCharacter' => '-',
						),
					),
				),
			),
        ),
    ),
	'fileName' => array (
        'defaultToHTMLsuffixOnPrev'=> 1,
		'index' => array(
			'index.html' => array(
				'keyValues' => array(
					'type' => 1,
				)
			),
		),
    ),	
); 
?>
Example .htaccess file:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot