Как индексировать динамический контентИсточник: be1
Обычно под динамическим контентом понимается содержание, выдаваемое скриптом из базы данных. При этом url страницы будет выглядеть как http://www.сервер.ru/cgi-bin/data.pl?id=122&name=vasya. Проблема возникает в том, что значительная часть поисковых роботов отказывается индексировать страницы, в адресе которых встречается знак вопроса или cgi-bin. Некоторые поисковые машины с подозрением относятся к наличию в url .pl или .cgi. Избавиться от этой проблемы можно несколькими способами.
Передача параметров в URL и переменную PATH_INFO.Первый способ. Самый простой.Делается небольшая "обманка" - если раньше Вы принимали параметры, вытаскивая их из QUERY_STRING, то теперь Вы будете их вытаскивать из PATH_INFO, простой передачей параметров по слешу и url будет выглядеть как data.pl/a=20 . Можно пойти немного дальше. Если Вам нужно передать только один параметр и он единственный, то можно сделать хитрее - cgi-bin/data.pl/20. Еше лучше будет сделать data.html/20, т.е. убрать из url cgi-bin. В последнем случае передавать скрипту параметры можно используя SSI директиву <!--#include virtual="/cgi-bin/data.pl?$PATH_INFO" --> . Далее взять QUERY_STRING, обрезать первый символ (всегда слеш) и разбирать обычным способом.
Прегенерация статических страницВторой способ. Хитрый.Вы делаете (генерите скриптом или вручную) SSI станицу, именуемую значением или уникалным псевдонимом (например vasya.html), внутри которой стоит простая директива <!--#include virtual="/cgi-bin/data.pl?name=vasya" --> . Таким образом Вы управляете контентом этой страницы из базы данных, но поисковики (так же как и пользователи) видят эту страницу по удобному им URL. При передаче нескольких параметров этот способ можно применять, закладывая параметры или в имя директории или в имя файла.
mod_rewriteТретий способ. Самый хитрый.Предлагаемый способ создания псевдостатических страниц - использование модуля mod_rewrite, если у Вас сервер Apache и провайдер позволяет Вам управлять им. Суть метода заключается в использовании возможности указать любой URL на сервере, далее перехватить запрос скриптом и выдать контент, т.е. при реальном отсутствии на сервере документов (вся информация хранится и выдается из базы данных) на сайте все URL видны как статические, т.е. без "?", "cgi-bin", ".php?id=" и прочих. Включить сам модуль можно через httpd.conf или .htaccess RewriteEngine on Следующая неообходимая запись Завершающие строчки настройки модуля - указание что при каких условиях делать, например: RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon В данном случае запрещается пользователю с браузером EmailSiphon входить на сайт. А запись типа Рекомендуем Вам внимательно и аккуратно пользоваться этим способом, т.к. при его использовании может сильно возрастать нагрузка той машины, на которой хостится Ваш сервер. Детальное описание модуля есть на сайте производителя - http://www.apache.org/docs/mod/mod_rewrite.html. Важное примечание. Обратите внимание на обязательную проверку передаваемых параметров дабы исключить возможность взлома Вашего сервера через скрипты. Также обратите Ваше внимание на работу скриптов при отсутствии передачи им параметров - они не должны выдавать ошибку. |