Я закодировал многоязычный веб-сайт с php & mysql. Теперь я столкнулся с проблемами (в основном с роботами, seo и поисковыми системами) , потому что язык выбирается на основе cookie.многоязычный веб-сайт: php + mysql + cookies
, как он работает сейчас: пользователь => index.php:
function cookies() {
if (!isset($_COOKIE["lang"])){
setcookie('lang','ukr', time()+(60*60*24*31));
header('Location: index.php');
}};
и вывод выбранного языка на каждое место, это должно было быть с функцией:
function catSet($source, $link, $item){
$item .= '_'. $_COOKIE['lang'];
global $connection;
$link = mysqli_real_escape_string($connection, $link);
$result = mysqli_query($connection, "SELECT * FROM $source WHERE link_item = '". $link ."'");
if (!$result) { die("DB Query failed: " . mysql_error()); }
while ($row = mysqli_fetch_array ($result)) {
echo $row[$item]; }}
То, что я хочу сейчас находится иметь $item .= '_'. $_COOKIE['lang'];
, который должен быть заменен постоянным на основе пользовательского выбора, который можно было бы прочитать роботами и поисковыми системами, поэтому это не должно быть cookie.
Я не хочу использовать сеанс, потому что таким образом пользователь должен переустанавливать язык каждый раз после окончания сеанса.
AFAIK не существует способа определить язык браузеров, чтобы установить его как значение по умолчанию.
Я вижу выход, чтобы использовать переменную [GET] и передавать его каждый раз на другую страницу, но как сохранить данные [GET], если пользователь вернется в следующий раз (та же проблема, что и в сеансах).
Я был бы признателен за любые идеи и решения :)
таким образом, я должен сделать if/else для проверки '(! Isset ($ _ COOKIE [" lang "]))' каждый раз. Пользователь приходит на страницу 1-го раза, допустим, по умолчанию lang = 'eng', если пользователь меняет lang, в следующий раз я буду читать cookie и дать ему обратно, который он выбрал. НО! Роботы не используют файлы cookie, это означает, что они всегда будут видеть только один = default lang ?! – A1exandr
@ A1exandr Как я уже сказал, перенаправляйте пользователя и игнорируйте cookie, когда задано значение get. Также во всех ссылках на веб-странице используйте эту переменную. Например. когда входящая ссылка имела lang = en, тогда каждая ссылка на веб-сайте будет содержать этот lang = en. –
Я тебя понимаю. Но что, если значение в get установлено в значение по умолчанию. Пойдут ли роботы через другие языки ?! – A1exandr