Я делаю точные шаги следующего ответа:
https://stackoverflow.com/a/16731438
Однако, если я переключаюсь на ручную настройку, я получаю следующую ошибку, даже если мой realurl_conf.php — это тот же файл, что и realurl_autoconf.php:
Page Not Found
Reason: Segment "fotografie" was not a keyword for a postVarSet as expected on page with id=0.
Если я переключаюсь обратно на автоматическую настройку, все работает как положено.
Есть идеи по этому поводу?
TYPO3 7.6.11
Здесь realurl_autoconf.php
:
<?php
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']=array (
'brightfocus.de' =>
array (
'init' =>
array (
'appendMissingSlash' => 'ifNotFile,redirect',
'emptyUrlReturnValue' => '/',
),
'pagePath' =>
array (
'rootpage_id' => '1',
),
'fileName' =>
array (
'defaultToHTMLsuffixOnPrev' => 0,
'acceptHTMLsuffix' => 1,
'index' =>
array (
'print' =>
array (
'keyValues' =>
array (
'type' => 98,
),
),
),
),
'postVarSets' =>
array (
'_DEFAULT' =>
array (
't3extblog-action' =>
array (
0 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[action]',
'noMatch' => 'bypass',
),
),
'article' =>
array (
0 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[year]',
),
1 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[month]',
),
2 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[day]',
),
3 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[post]',
'lookUpTable' =>
array (
'table' => 'tx_t3blog_post',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND NOT deleted AND NOT hidden',
'useUniqueCache' => 1,
'useUniqueCache_conf' =>
array (
'strtolower' => 1,
'spaceCharacter' => '-',
),
'enable404forInvalidAlias' => 1,
'autoUpdate' => 1,
'expireDays' => 180,
'languageGetVar' => 'L',
'languageExceptionUids' => '',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l18n_parent',
),
),
),
'comment' =>
array (
0 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[controller]',
'noMatch' => 'bypass',
'valueMap' =>
array (
'new' => 'Comment',
),
),
),
'permalink' =>
array (
0 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[permalinkPost]',
),
),
'preview' =>
array (
0 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[previewPost]',
),
),
'author' =>
array (
0 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[author]',
'lookUpTable' =>
array (
'table' => 'be_users',
'id_field' => 'uid',
'alias_field' => 'username',
'addWhereClause' => ' AND deleted !=1 AND disable !=1',
'useUniqueCache' => 1,
'useUniqueCache_conf' =>
array (
'strtolower' => 1,
'spaceCharacter' => '-',
),
'enable404forInvalidAlias' => 1,
'autoUpdate' => 1,
'expireDays' => 180,
),
),
),
'tags' =>
array (
0 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[tag]',
),
),
'category' =>
array (
0 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[category]',
'lookUpTable' =>
array (
'table' => 'tx_t3blog_cat',
'id_field' => 'uid',
'alias_field' => 'catname',
'addWhereClause' => ' AND deleted !=1 AND hidden !=1',
'useUniqueCache' => 1,
'useUniqueCache_conf' =>
array (
'strtolower' => 1,
'spaceCharacter' => '-',
),
'enable404forInvalidAlias' => 1,
'autoUpdate' => 1,
'expireDays' => 180,
'languageGetVar' => 'L',
'languageExceptionUids' => '',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l18n_parent',
),
),
),
'page' =>
array (
0 =>
array (
'GETvar' => 'tx_t3extblog_blogsystem[@widget_0][currentPage]',
),
),
'subscription' =>
array (
0 =>
array (
'GETvar' => 'tx_t3extblog_subscriptionmanager[controller]',
'valueMap' =>
array (
'blog' => 'BlogSubscriber',
'post' => 'PostSubscriber',
),
'noMatch' => 'bypass',
),
1 =>
array (
'GETvar' => 'tx_t3extblog_subscriptionmanager[action]',
'valueMap' =>
array (
'confirmation' => 'confirm',
'create' => 'create',
'delete' => 'delete',
'error' => 'error',
'logout' => 'logout',
),
'noMatch' => 'bypass',
),
2 =>
array (
'GETvar' => 'tx_t3extblog_subscriptionmanager[code]',
),
),
'subscription-blog' =>
array (
0 =>
array (
'GETvar' => 'tx_t3extblog_blogsubscription[action]',
),
),
),
),
),
);
Редактировать:
Может быть, что-то не так с rootpageId:
Если я отредактирую автоконф от идентификатора корневой страницы 1
на идентификатор корневой страницы 2
я получаю следующую ошибку:
Страница не найдена
Reason: Segment "fotografie" was not a keyword for a postVarSet as expected on page with id=2.
=> Я принимаю на себя часть id=2
исходит из моего rootpageId. Возвращаясь к моей первоначальной ошибке, я предполагаю, что есть какой-то rootpageId 0
указано (даже если установлено rootpage_id = '1'
У меня следующая структура сайта:
id=0
|id=1 (Home; Redirect to id=2; marked as rootpage)
-|id=2 (Startseite)
-|id=3 (Fotografie)
-|id=4 (Grafikdesign)
Я знаю, что это не идеально, но с autoconf эта структура работает, поэтому я предполагаю, что должен быть способ заставить это работать с ручным conf без изменения структуры (потому что я не думаю, что это будет тривиально)
Попробуйте этот очень минимальный конфиг: корневая страница определяется также именем домена, это может работать, но у меня всегда возникают проблемы с realurl на разных типах доменов (локальный / суб / нерегулярный) и кэшированием путей.
Кэш путей может быть очищен в бэкэнде: Web> Speaking URL’s> «выбрать страницу в дереве»> Flush all Entries (вредно). Не делайте этого на проиндексированном сайте!
Надеюсь, этот конфиг работает на вас.
<?php
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array (
'_DEFAULT' => array (
'init' => array (
'enableCHashCache' => '1',
'appendMissingSlash' => 'ifNotFile',
'enableUrlDecodeCache' => '1',
'enableUrlEncodeCache' => '1',
),
'redirects' => array (
),
'pagePath' => array (
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
'spaceCharacter' => '-',
'languageGetVar' => 'L',
'expireDays' => '7',
'rootpage_id' => $rootpageId,
),
),
);
switch($_SERVER['HTTP_HOST']) {
case 'yourwebsite.com':
case 'www.yourwebsite.com':
$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'index.php?id=4';
$TYPO3_CONF_VARS['FE']['pageNotFound_handling_statheader'] = 'HTTP/1.0 404 Not Found';
$rootpageId = 1;
break;
}
?>
Других решений пока нет …