Session vs URI многоязычный идентификатор - PullRequest
3 голосов
/ 17 мая 2011

Я работаю на многоязычном веб-сайте (php / mysql), и мой вопрос заключается в том, что было бы лучшим решением для идентификации языка - сессии / куки или URI-идентификация.Я имею в виду с точки зрения SEO, что было бы более точным.

Спасибо

Ответы [ 4 ]

3 голосов
/ 17 мая 2011

Существуют разные типы проектов, которые не должны использовать одну и ту же языковую реализацию.

Позвольте привести несколько примеров:

  1. Первый проект имеет одно доменное имя, скажем, example.com. Этот сайт должен быть доступен на трех языках. Чтобы позволить поисковой системе четко сканировать и индексировать каждый язык - правильное решение здесь - передать его по URL. example.com/fr/ для французского.

  2. Второй проект, имеет доменное имя для каждого языка, example.fr, example.co.uk. Лучше всего, чтобы каждый домен индексировался поисковой системой только по его основному языку. Поэтому решение, которое я выбрал бы, заключалось в сохранении языка в куки при переключении. (или перенаправить на другой домен полностью).

Если бы мы выбрали решение примера 1 для примера 2, то и example.co.uk/fr/, и example.fr имели бы одинаковое содержимое, что не подходит для SEO.

1 голос
/ 17 мая 2011

Используя только сеансы / файлы cookie, кто-то не сможет напрямую ссылаться на версию вашего контента на суахили.Вместо этого у вас будет язык по умолчанию (английский?), На который будут указывать все входящие ссылки.Оказавшись там, если пользователь хотел получить ваш контент в Mandarin, он мог бы выбрать этот вариант, но он не получит его прямо из ворот, поэтому использование URI-идентификации - это мой личный выбор.

Есть параспособы пометить, какой язык использовать в URI, либо установив некую структуру каталогов, такую ​​как: http://domain.tld/localized/fr/ для главной страницы французского контента, либо вы можете абстрагировать его в своей базе данных и определить язык с помощьюGET переменные: http://domain.tld/?l=4 для главной страницы языка с идентификатором 4

Или, как указал Уэсли ван Опдорп, вы можете создать отдельный домен или поддомен для каждого языка: http://domain.fr или http://fr.domain.tld

Что касается SEO, я считаю, что лучшим способом было бы придерживаться стандартов доменов верхнего уровня и настроить отдельный домен для каждого языка, на котором вы хотите разместить сайт (*)1012 *, http://domain.ru и т. Д.).Это, конечно, означало бы покупку большего количества доменов, поэтому, если это не вариант, я бы выбрал второй вариант настройки поддоменов для каждого языка, например: http://fr.domain.tld и http://ru.domain.tld

1 голос
/ 17 мая 2011

URL.Вы можете использовать что-то вроде префикса '/ en /' для всех путей.Очевидно, вы бы использовали mod_rewrite или соответствующую конфигурацию маршрутизации фреймворка.

1 голос
/ 17 мая 2011

Если вы поместите язык в URI, веб-сканер может проиндексировать сайт на разных языках, и пользователи смогут добавлять в закладки / ссылаться на них.Это невозможно, если нет прямой ссылки (=> URL) на страницы.

Вы можете комбинировать оба способа: если в URI нет информации о языке, попробуйте найти ее из файла cookie/ сеанс, и если это не удается, посмотрите на Accept-Language -Header.Теперь, если один пользователь изменит язык (по ссылке или как-то еще), запишите его в файл cookie (для последующих посещений).

...