0

我有一个简单的网站,基本语言是英语和德语的翻译。

这是来自 ezplatform.yml 的站点访问设置

# Siteaccess configuration, with one siteaccess per default
siteaccess:
    default_siteaccess: en
    list:
        - en
        - de
    groups:
        site_group:
            - en
            - de
    match:
        URIElement: 1

# System settings, grouped by siteaccess and/or siteaccess group
system:
    site_group:
        api_keys: { google_maps: "xxx" }
        cache_pool_name: '%cache_pool%'
        var_dir: var/site
        translation_siteaccesses: [de, en]
    de:
        languages: [ger-DE, eng-GB]
    en:
        languages: [eng-GB]
    default:
        content:

效果很好,访问localhost:8000显示英文内容,并localhost:8000/de显示德文内容。

然后我构建了一个简单的语言切换器:

<ul>
    <li>

        <a href="{{ url( ez_route( null, {"language": "ger-DE"} ) ) }}" {% if ezpublish.siteaccess.name == 'de' %}class="inactive"{% endif %}>
            Deutsche
        </a>
    </li>
    <li>
        <a href="{{ url( ez_route( null, {"language": "eng-GB"} ) ) }}" {% if ezpublish.siteaccess.name == 'en' %}class="inactive"{% endif %}>
            English
        </a>
    </li>
</ul>

但现在我发现 SEO 的重复内容存在问题。在德语站点访问时,语言切换器会打印一个链接,指向 eng-GB 语言的站点访问localhost:8000/en链接localhost:8000

我如何告诉 ez 将所有 /en 内容重定向到 /?我认为必须有更好的解决方案,但我在文档中看不到如何:/

当我改变匹配器的工作方式时:

siteaccess:
    default_siteaccess: en
    list:
        - en
        - de
    groups:
        site_group:
            - en
            - de
    match:
        Map\URI:
            /: en
            de: de

对于英文翻译,我在英文的 url 中得到一个 //。

4

1 回答 1

1

我们正在使用这个匹配器配置,它工作正常:

ezpublish:
    siteaccess:
        match:
            Compound\LogicalAnd:
                cro:
                    matchers:
                        Map\URI: { cro: true }
                        Map\Host: { '%site_domain%': true }
                    match: cro
            Map\Host:
                '%site_domain%': eng

请注意,我使用%site_domain%的是我在app/config/parameters.yml. 您也可以这样做,或者您可以使用硬编码值。

缺点是,您需要将所有新的站点访问添加到Compound\LogicalAnd匹配器中的列表中,但是如果您有一个带有几个站点访问的简单站点,我猜应该没问题。

于 2017-08-21T10:03:44.450 回答