【发布时间】:2017-07-18 00:01:52
【问题描述】:
每个地区(例如德国、瑞士)都有多个页面树。使用 L 参数将页面本身翻译成多种语言(例如 de、en)。
现在 Realurl 应该从 2 个 url 段匹配到适当的页面树和语言。我知道如何使用 _Domains 功能为每个区域使用单独的域来完成此操作。但在这种情况下,所有区域的域始终保持不变。这可以通过 Realurl 实现吗?如何实现?
http://example.com/de/de => 应该映射到具有 rootpage_id 1 和语言 de (L=0) 的页面树
http://example.com/de/en => 应该映射到具有 rootpage_id 1 和语言 en (L=1) 的页面树
http://example.com/ch/de => 应该映射到具有 rootpage_id 2 和语言 de (L=0) 的页面树
http://example.com/ch/en => 应该映射到具有 rootpage_id 2 和语言 en (L=1) 的页面树
real_url.conf
<?php
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['_DEFAULT'] = array(
'init' => array(
'enableCHashCache' => 1,
'appendMissingSlash' => 'ifNotFile,redirect',
'adminJumpToBackend' => 1,
'enableUrlDecodeCache' => 1,
'enableUrlEncodeCache' => 1,
'emptyUrlReturnValue' => '/'
),
'pagePath' => array(
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
'spaceCharacter' => '-',
'languageGetVar' => 'L',
'expireDays' => '3',
'rootpage_id' => 1,
'firstHitPathCache'=>1
),
'preVars' => array(
array(
'GETvar' => 'L',
'valueMap' => array(
'de' => '0',
'en' => '1',
),
'valueDefault' => 'de',
),
array(
'GETvar' => 'no_cache',
'valueMap' => array(
'no_cache' => 1,
),
'noMatch' => 'bypass',
),
),
);
【问题讨论】:
-
在此处添加您的 realconf.php 配置语言代码..
-
我只有基本的 realurl_conf,因为到目前为止我还没有找到如何进一步处理上述规范的方法。到目前为止,我研究的所有内容都不能满足要求。到目前为止,我相信无论如何使用 realurl 是不可能的。我错了吗?
-
添加了realurl_conf
-
我正在寻找的解决方案是域之后的第一段。应该有一个段指示要使用哪个页面树(区域)。我知道如果每个区域(页面树)都有一个单独的域,则可以使用 _DOMAINS 来完成。在我们的例子中,所有区域都具有相同的域,并且应该由域之后的第一段完成切换。为此,我没有找到类似的域解决方案。
-
我们现在将扭转局面 - de/de 或 de/ch。首先是语言,然后是地区。然后,我们将为域创建一个页面树,该页面树在根目录下分成两棵树。顶部页面路径段将根据区域命名,例如de/ch