TYPO3在多域环境下的realurl

TYPO3's realurl in multi domain environment

Realurl 从页面标题生成页面 URI。在多域环境中,碰巧有一些页面具有相同的标题,例如 "contact" 或 "imprint"。似乎 realurl 无法区分那些 URLs:

http://www.domain1.com/contact/ http://www.domain2.com/contact/

在上面的示例“http://www.domain1.com/contact/”中,它们总是指向在 realurl 数据库 table 中找到的第一个 URL。有没有办法避免这种情况?

这是 reaurl 配置:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']=array(
    '_DEFAULT' => array(
        'init' => array(
            'appendMissingSlash' => 'ifNotFile,redirect',
            'emptyUrlReturnValue' => '/',
        ),
        'pagePath' => array(
            'rootpage_id' => '123',
        ),
        'fileName' => array(
            'defaultToHTMLsuffixOnPrev' => 0,
            'acceptHTMLsuffix' => 1,
            'index' => array(
                'print' => array(
                    'keyValues' => array(
                        'type' => 98,
                    ),
                ),
            ),
        ),
    ),
    'www.domain1.de' => '_DEFAULT',
    'domain1.de' => 'www.domain1.de',
    'www.domain2.de' => '_DEFAULT',
    'www.domain2.de' => array(
        'pagePath' => array(
            'rootpage_id' => '456',
        ),
    ),
    'domain2.de' => 'www.domain2.de',
);

一般来说,这意味着 rootpage_id 设置不正确或未在您的配置中设置。只要您正确配置了根页面 ID,当您在不同域中拥有相同的标题时,RealURL 没有任何问题。

这是正确的 snytax:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['_DEFAULT'] = array(
    'init' => array(
        'appendMissingSlash' => 'ifNotFile,redirect',
        'emptyUrlReturnValue' => '/',
    ),
    'pagePath' => array(
        'rootpage_id' => '123',
    ),
    'fileName' => array(
        'defaultToHTMLsuffixOnPrev' => 0,
        'acceptHTMLsuffix' => 1,
        'index' => array(
            'print' => array(
                'keyValues' => array(
                    'type' => 98,
                ),
            ),
        ),
    ),
);
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['www.domain1.tld'] = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['_DEFAULT'];
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['domain1.tld'] = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['www.domain1.tld'];

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['www.domain2.tld'] = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['_DEFAULT'];
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['www.domain2.tld']['pagePath']['rootpage_id'] = '456';
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['domain2.tld'] = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['www.domain2.tld'];

当前的 realurl 配置可以在模块 "Configuration" -> $GLOBALS['TYPO3_CONF_VARS' 中找到。在那里可以检查 realurl 配置文件是否做了它应该做的事情。