Устанавливая тег Canonical, я обнаружил, что я не получаю весь сок из канонической цели ...
ДАН В настоящее время сделаны ужасные ссылки типа website.org/juice?ln=de
хороший через apache, доступный более удобным для пользователя способом, как website.org/de/juice
.Теперь, на этом многоязычном веб-сайте, я хочу, чтобы последовательность и все страницы имели свои языки в виде папки.Я хочу, чтобы поисковые системы запомнили и предпочли эти /language/page
, а не их уродливые аналоги /page?ln=language
.
Вопрос 1: Могу ли я сориентироваться на правильном пути, как я хочуиспользовать Canonical, чтобы сообщить об этом поисковым системам?
CURRENTLY код удаляет ненужные строки, поэтому канонические URL-адреса короткие:
когда URL = http://website.org/de/juice?ln=whatever
canocal url= http://website.org/de/juice
Софар настолько хорош, НО , он не перезаписывает старые файлы, перемещающиеся в кэш-памяти поисковой системы net / old, и поэтому следующие ситуации идут не так:
когда URL = http://website.org/juice?ln=xyz (отсутствует языковая папка)
, тогда каноническим становится = http://website.org/juice (тогда как должно быть http://website.org/xyz/juice
Вопрос 2: что я должен добавить к своему коду, чтобы улучшить / повысить надежность моего канонического кода, чтобы он распознавал ситуации, когда не задана языковая папка?
<?php
$domain = $_SERVER['HTTP_HOST']; #domain like website.org
$qsIndex = strpos($extensions, '?'); # strip off of string/query part (?ln=xyz)
$pageclean = $qsIndex !== FALSE ? substr($extensions, 0, $qsIndex) : $extensions;
$canonical = "http://" . $domain . $pageclean;
?>
<html><head><link rel="canonical" href="<?=$canonical?>"></head>...
примечание: языки могут быть такими, как {de, nl, эс, это, ан, ля, .... но тоже ж-кн, ж-тв} так что бы это ни было после ln?=