У меня простой сайт, базовый язык английский с переводом на немецкий.
Вот настройка доступа к сайту из 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. При доступе к немецкому языку переключатель языка печатает ссылку на доступ к сайту для английского языка как 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-адресе для английского языка.
<a href="/" {% if ezpublish.siteaccess.name == 'en' %}class="inactive"{% endif %}>Englisch</a>
? - person Amir Koklan   schedule 20.08.2017