Гостевая
Форум
Разделы
Главная страница
Js скрипты
Php скрипты
Html шаблоны
Книги по Web дизайну
Статьи


Главная страница статей --> Хитрости при программировании php, заметки по базам данных

Преимущества индексации страниц с mod_rewrite

Источник: realcoding.net

Модуль mod_rewrite.so в первую очередь предназначен для имитации файлов и папок на серверах типа Apache. Т.е. папки или файлы не обязательно должны существовать на сервере, их может заменять один или несколько серверных исполняемых скриптов с расширениями .php, .asp или любые другие исполняемые на стороне сервера программы.

Многие сайты, которые поисковые роботы и некоторые люди считают статическими (действительно состоящими из файлов и папок), на самом деле являются динамическими (их содержание генерируется в зависимости от того, какой URL был передан скрипту). Людей ввести в заблуждение куда проще, чем поисковых роботов, т.к. они помимо url смотрят еще и на все заголовки, возвращаемые сервером в ответ на запрос кокой либо страницы или файла, и в зависимости от этого решают к какому типу относится сайт и как его индексировать.

Так как же динамические сайты обманывают поисковиков, и главное, зачем им это нужно? Ответ на этот вопрос прост, они отсылают им такие заголовки (header), что бы поисковики поверили в то, что это действительно физически существующие файлы. Ну а нужно это многим сайтам, и в первую очередь для экономии трафика. Ведь если сайт является популярным и при этом очень большим (больше 100 Mb чистого контента), то поисковые системы могут индексировать его почти каждый день, что с точки зрения расчетов 100x30;3 Гигабайта, и это при условии что сайт индексирует всего один поисковый робот. А при симуляции реальных файлов, и отправке правильных заголовков поисковики не будут скачивать все уже проиндексированные страницы, при условии, что их размер и дата не будут меняться с течением времени.

Для работы с mod_rewrite вам необходимо в корневой папке сайта создать (если нет) или дописать в уже существующий .htaccess, строку:

RewriteEngine on

После этого, если mod_rewrite был установлен на вашем сервере, он должен начать работать. О том, как использовать все возможности mod_rewrite и вообще, что это такое, вы можете почитать в других моих статьях: Псевдостатика (mod_rewrite). Часть 1, Часть 2.

После то как mod_rewrite был настроен и сайт был приспособлен для работы с ним, т.е. все динамические URL были преобразованы в статические, можно приступать к исправлению отсылаемых заголовков. Основная масса поисковых роботов при индексации запрашивает только дату последней модификации и размер документа, но есть и более привередливые, и чтобы удовлетворить всех мне пришлось изрядно повозиться с их документацией. И вот небольшая таблица, в которой описаны основные заголовки, которые запрашивают поисковики для определения типа страницы:

If-Modified-Since Заголовок, который отправляет скрипту поисковый робот, в нем содержится дата (в формате GMT) последнего изменения файла, хранящегося у поискового робота. В ответ на него нужно отсылать header(HTTP/1.1 304 Not Modified), если дата изменения этого файла не была изменена.

Content-Length Размер файла, этот заголовок должен отправлять скрипт, причем он должен соответствовать реальности и всегда быть одинаковым.

Last-Modified Дата (в формате GMT) текущего изменения, должна равняться той дате, что указанна в If-Modified-Since, если вы не хотите, что бы страница была еще раз скачана роботом.

Expires Дата (в формате GMT) действительности файла/документа, по идее после истечения этой даты поисковики должны перестать выдавать данный файл/документ в результатах поиска.

Content-Type Содержание (тип) файла, необходим поисковику для принятия решения, скачивать файл или нет. К примеру, если файл имеет расширение .exe или .dll то его содержание, наверное, никому не понадобится, по этой причине некоторые файлы даже не скачиваются поисковыми роботами.

http_range Нужен для поддержки докачки файлов. Данный заголовок отправляется поисковым роботом и содержит размер уже загруженных данных (используется поисковиками крайне редко).

accept-ranges Размер всего файла при использовании докачки данных (используется поисковиками крайне редко).

content-range Позиция, с которой идет загрузка файла данных (используется поисковиками крайне редко).

В таблицу я не стал вносить заголовки состояний страницы (200, 303, 302, 301, 404), которые ваш сервер в любом случае должен отсылать сам, но если вам хочется, то вы их тоже можете изменять. Более подробную информацию ищите в статье ПРОТОКОЛ ПЕРЕДАЧИ ГИПЕРТЕКСТА -- HTTP / 1.1 и Коды ответов сервера.

Из этой статьи вы должны были усвоить, что для больших и посещаемых сайтов использование mod_rewrite + header() жизненно необходимо. Даже если вам придется полностью менять движок сайта или его переделывать (для правильного отображения всех URL), то это экономически обоснованно, т.к. тратить свой трафик на поисковых роботов не целеобразно. Ведь приблизительная цена гигабайта трафика составляет 1-2$, и из расчетов выше видно, что на одного поискового робота будет приходиться по 3-6$ в месяц, а таких ботов обычно не менее пяти, в итоге получится очень значительная сумма даже для очень богатого и крупного интернет-проекта. Поэтому большие динамические сайты лучше сразу создавать изначально ориентированные на работу с mod_rewrite + правильный header(), и тогда индексация сайта множеством поисковиков для вас не будет проблемой.

Об отправке заголовков советую почитать статью Harry Fuecks (Перевод: Муллин Сергей, Кузьма Феськов) Кэширование в PHP.



Похожие статьи:
- Oracle и PHP - это очень просто
- AJAX. Тонкости Web Setup Project
- Ajax on Rails
- Ruby on Rails / Часть 1
- Установка Ruby on Rails для чайников
- Зачем сайту нужна раскрутка?
- Собственная статистика посещаемости сайта
- Защита сайта. Блокировка ip адреса
- PHP 5 - установка и конфигурация под наши нужды в режиме mod_php для Apache
- 10 способов превратить трафик сайта в живые деньги
- Как писать классы в PHP
- Псевдостатика (mod_rewrite)
- Использование mod_perl


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |
[0.001]