Як індексувати динамічний контент, HTML, XML, DHTML, Інтернет-технології, статті

Зазвичай під динамічним контентом розуміється зміст, що видається скриптом з бази даних. При цьому 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 директиву . Далі взяти QUERY_STRING, обрізати перший символ (завжди слеш) і розбирати звичайним способом.


Прегенерація статичних сторінок

Другий спосіб. Хитрий.

Ви робите (генерувати скриптом або вручну) SSI станицю, іменовану значенням або унікалним псевдонімом (наприклад vasya.html) всередині якої стоїть проста директива . Таким чином Ви керуєте контентом цієї сторінки з бази даних, але пошуковики (так само як і користувачі) бачать цю сторінку за зручним їм 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.

Важливе зауваження.

Зверніть увагу на обов’язкову перевірку переданих параметрів щоб виключити можливість злому Вашого сервера через скрипти. Також зверніть Вашу увагу на роботу скриптів при відсутності передачі їм параметрів – вони не повинні видавати помилку.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*