Как индексировать динамический контент. mod_rewrite.Rambler's Top100 be1.ru > статьи > Как индексировать динамический контент. mod_rewrite.
ROBOXchange на 

О сервисах  |  Регистрация  |  Для пользователей  |  Создание сайта / статьи  |  Контакты  |  Работа в IT  |  Поиск в интернет

ОТКРЫТЫЙ РАЗДЕЛ
  • Раскрутка сайта
  • Статьи и материалы
  • Терминология
  • Условия сервиса
  • Полезные ссылки
  • Работа в IT
  • о проекте
  • наши баннеры
  • обмен ссылками
  • подписка на новости
  • обратная связь

  • Как индексировать динамический контент.

            Обычно под динамическим контентом понимается содержание, выдаваемое скриптом из базы данных. При этом 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
    Options +FollowSymlinks


    Следующая неообходимая запись
    RewriteBase /
    говорит модулю где применяется модуль, указание "/" эквивалентно "везде внутри сервера"

    Завершающие строчки настройки модуля - указание что при каких условиях делать, например:

    RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon
    RewriteRule ^.*$ - [F]


    В данном случае запрещается пользователю с браузером EmailSiphon входить на сайт.

    А запись типа
    RewriteRule ^(.*)shop/(.*)$ $1cgi-bin/shop.cgi?id=$2
    говорит серверу, о том, что при запросе вида www.domen.ru/AAAAAAshop/1234 должен быть выдан контент с URL www.domen.ru/AAAAAA/cgi-bin/shop.cgi?id=1234

    Рекомендуем Вам внимательно и аккуратно пользоваться этим способом, т.к. при его использовании может сильно возрастать нагрузка той машины, на которой хостится Ваш сервер. Детальное описание модуля есть на сайте производителя - http://www.apache.org/docs/mod/mod_rewrite.html.

    Важное примечание.

    Обратите внимание на обязательную проверку передаваемых параметров дабы исключить возможность взлома Вашего сервера через скрипты. Также обратите Ваше внимание на работу скриптов при отсутствии передачи им параметров - они не должны выдавать ошибку.
    Rambler's Top100 Рейтинг@Mail.ru