2015-12-17 4 views
0

У меня есть, которые в URL, включая греческие буквыSEO Canonical URL в греческих символов

http://www.mydomanain.com/gr/τιτλος-σελιδας/20/

Я использую $_SERVER['REQUEST_URI'] вставить значение канонической ссылки на моей странице головы, как этот

<link rel="canonical" href="http://www.mydomanain.com<?php echo $_SERVER['REQUEST_URI']; ?>" /> 

Проблема заключается в том, что когда я просматриваю источник страницы, URL-адрес отображается с такими символами, как ...CE%B3%CE%B3%CE%B5%CE%BB..., но при нажатии на него отображает ссылку как должно быть

Это будет вызвано любым штрафом со стороны поисковых систем?

ответ

0

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

Обычно кодирование символов, которые могут вызвать проблемы в URL-адресах, является обычным примером (% 20), см. Ascii tables. Синтаксис% xx относится к эквивалентному значению HEX для символа.

Поисковые системы будут знать об этом и правильно интерпретировать символы.

При отправке HTML в браузер убедитесь, что набор символов, указанный сервером, соответствует вашему HTML. Поисковые системы также будут искать это, чтобы правильно декодировать HTML. Правильный способ сделать это через HTTP-заголовки ответов. В PHP они устанавливаются с header:

header('Content-Type: text/html; charset=utf-8'); 
    // Change utf-8 to a different encoding if used 
0

URL-адрес может состоять только из ограниченного подмножества ASCII символов. Фактически вы не можете использовать «греческие символы» в URL-адресе. Все символы за пределами этого ограниченного диапазона ASCII must be percent-encoded.

Теперь браузеры сделать две вещи:

  1. Если они сталкиваются с URL-адреса в вашем HTML, которые выходят за пределы этого правила, т.е. которые содержат незакодированные символы не-ASCII, браузер будет услужливо закодировать их для вас перед отправкой запрос на ваш сервер.
  2. Для некоторые (недвусмысленные) символы, браузер будет отображать их в своей расшифрованной форме в адресной строке, чтобы улучшить UX.

Итак, да, все хорошо. На самом деле, вы должны быть процентным кодированием своих URL-адресов самостоятельно, если их еще нет.

Смежные вопросы