Многие сайты, которые поисковые роботы и некоторые люди считают статическими (действительно состоящими из файлов и папок), на самом деле являются динамическими (их содержание генерируется в зависимости от того, какой URL был передан скрипту). Людей ввести в заблуждение куда проще, чем поисковых роботов, т.к. они помимо url смотрят еще и на все заголовки, возвращаемые сервером в ответ на запрос кокой либо страницы или файла, и в зависимости от этого решают к какому типу относится сайт и как его индексировать.
Так как же динамические сайты "обманывают" поисковиков, и главное, зачем им это нужно? Ответ на этот вопрос прост, они отсылают им такие заголовки (header), что бы поисковики поверили в то, что это действительно физически существующие файлы. Ну а нужно это многим сайтам, и в первую очередь для экономии трафика. Ведь если сайт является популярным и при этом очень большим (больше 100 Mb чистого контента), то поисковые системы могут индексировать его почти каждый день, что с точки зрения расчетов 100Мб x 30дней ≈ 3 Гигабайта, и это при условии что сайт индексирует всего один поисковый робот. А при симуляции реальных файлов, и отправке правильных заголовков поисковики не будут "скачивать" все уже проиндексированные страницы, при условии, что их размер и дата не будут меняться с течением времени.
Для работы с mod_rewrite вам необходимо в корневой папке сайта создать (если нет) или дописать в уже существующий .htaccess, строку:
Название заголовка |
Расшифровка |
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), которые ваш сервер в любом случае должен отсылать сам, но если вам хочется, то вы их тоже можете изменять.