Как установить og: url, когда требуется локаль? - PullRequest
4 голосов
/ 25 ноября 2011

Я работаю на сайте, где требуется указать локаль как часть URL (например, http://example.com/content/locale).

Если вы не введете локаль (например, http://example.com/content)), появится страница с ошибкой и вас попросят выбрать значение из списка.

Для большинства внешних сайтов мы просто опускаем языковой стандарт и позволяем пользователю выбирать, однако для Facebook это заставляет сканер очистить страницу ошибки.

Если мы включим каждую локаль в отдельный og: url, это будет означать тысячи объектов, созданных для каждой страницы (так как мы поддерживаем столько локалей) и, возможно, сотни тысяч для сайта.

Разрешает ли Facebook такое большое количество URL-адресов og: для домена?

Есть ли лучшая стратегия, которую я могу использовать?

1 Ответ

4 голосов
/ 27 ноября 2011

Facebook ожидает, что в циничных URL-адресах не будет непосредственно указан код локали. Включение некоторого кода локали в URL будет означать, что у вас есть разные объекты на графике, по одному для каждой локали.

Вместо этого создайте URL, которые не включают код локали. На каждом из ваших других видимых пользователю URL-адресов, которые включают код локали, добавьте тег og: URL, который указывает на канонический URL без кода локали в нем.

На каноническом URL, когда Facebook делает запрос, найдите строку useragent. Если он содержит «facebookexternalhit», тогда верните HTML и разметку og для чтения в Facebook. Если это не так, вы можете обслужить 302 и перенаправить пользователя на URL, который представляет объект на их языке.

См. Документацию FB по интернационализации открытых графов для получения дополнительной информации о том, как обрабатывать многоязычные объекты

...