смена языка (отключеные Cookies)
Добавлено: 15 дек 2005, 00:46
Вопрос такой: Как можно определить, посещает ли мою страницу робот, или человек?
Самописные роботы не интересуют, важно, чтобы поисковики правильно индексировали страницы.
Почему возник вопрос?
PHP
Меняю язык сайта через Cookie, с последующим перебросом через
header("Location: SELF_without_Language_Parameter");
Если пустить такую страницу через валидатор - возвращается ошибка 302.
Сервер не знает, включены ли Cookie у пользователя, потому хочу сделать следующее.
Если пользователь - робот, пропускать установку Cookie и ставить язык по дефолту (или же из параметра $_GET, если установлен)
(ясно, что индексироваться будет только один язык .. может в будущем перепишу все ссылки для НЕ Cookie).
Получаю ссылки смены языка (иконка с флагом):
href="?content=...&lang=ru"
href="?content=...&lang=en
(устанавливает Cookie в язык и перебрасывает на "?content=...")
остальные же ссылки всегда:
href="?content=news"
href="?content=about"
и т.д.
Красиво и удобно, но ... страницы не будут, как я предполагаю, индексироваться.
Если есть стандартные решения - буду рад их узнать.
(Многоязыковые страницы, которые я видел, показывают просто параметр lang в строке запроса. Хотелось бы этого избежать.)
1. Как можно на php узнать отключены ли Cookie?
если нельзя, то:
2. Как можно быть уверенным, что страницу посещает не пользователь, а робот?
(Наверное нужно проверять $_SERVER["HTTP_USER_AGENT"], но на какие значения? .. )
Возможный вариант решения: положить на сервер: robots.txt, где перечислить все ссылки со всеми возможными языками, но всё равно нужно на странице проверять, робот ли её посещает, али человек
Самописные роботы не интересуют, важно, чтобы поисковики правильно индексировали страницы.
Почему возник вопрос?
PHP
Меняю язык сайта через Cookie, с последующим перебросом через
header("Location: SELF_without_Language_Parameter");
Если пустить такую страницу через валидатор - возвращается ошибка 302.
Сервер не знает, включены ли Cookie у пользователя, потому хочу сделать следующее.
Если пользователь - робот, пропускать установку Cookie и ставить язык по дефолту (или же из параметра $_GET, если установлен)
(ясно, что индексироваться будет только один язык .. может в будущем перепишу все ссылки для НЕ Cookie).
Получаю ссылки смены языка (иконка с флагом):
href="?content=...&lang=ru"
href="?content=...&lang=en
(устанавливает Cookie в язык и перебрасывает на "?content=...")
остальные же ссылки всегда:
href="?content=news"
href="?content=about"
и т.д.
Красиво и удобно, но ... страницы не будут, как я предполагаю, индексироваться.
Если есть стандартные решения - буду рад их узнать.
(Многоязыковые страницы, которые я видел, показывают просто параметр lang в строке запроса. Хотелось бы этого избежать.)
1. Как можно на php узнать отключены ли Cookie?
если нельзя, то:
2. Как можно быть уверенным, что страницу посещает не пользователь, а робот?
(Наверное нужно проверять $_SERVER["HTTP_USER_AGENT"], но на какие значения? .. )
Возможный вариант решения: положить на сервер: robots.txt, где перечислить все ссылки со всеми возможными языками, но всё равно нужно на странице проверять, робот ли её посещает, али человек