SiteMaker - Академия сайтостроительства | Разработка сайта
| Вёрстка сайта
| Веб программирование
| Интернет технологии
| Продвижение ресурса
| Инструментарий
карта сервера :: форум :: профайл :: авторам :: о сайте
Гид: SiteMaker.Ru » Интернет технологии » Веб сервер и SSI » Модуль mod_rewrite. Часть 4.

Модуль mod_rewrite. Часть 4.


Версия для печати
В этой публикации мы затронем те директивы, которые не успели охватить в предыдущих частях. Эти директивы не поддаются определению на уровне директорий. Это означает то, что вы должны иметь доступ к файлу конфигурации веб сервера Apache (httpd.conf).

Обычно такой доступ имеют пользователи «root» или администратор сервера.

Если вы хотите вести логи всех операций, выполненных с помощью mod_rewrite, можно активировать это с помощью следующей записи:

RewriteLog /usr/local/apache/logs/mod_rewrite_log
RewriteLogLevel 1

Эту строку нужно вписать в «Раздел 2: Конфигурация основного сервера» в файле httpd.conf, а не в .htaccess!

Все манипуляции, произведенные mod_rewrite будут записываться в этот файл. Имя лог файла может быть любым. Вы можете указать абсолютный или относительный (относительно ServerRoot) путь к файлу.

Если вы хотите вести разные лог файлы для различных виртуальных хостов, то нужно ввести изменения в «Раздел 3: Виртуальные сервера», например так:

ServerAdmin webmaster@yourdomain.com
DocumentRoot /usr/www/htdocs/yourdomain
ServerName yourdomain.com
RewriteLog /usr/apache/logs/yourdomain_mod_rewrite_log
RewriteLogLevel 1

RewriteLogLevel может быть определен в пределах диапазона от 1 до 8. Обычно достаточно первого уровня. Более высокие уровни используются для деббагинга.

Другая директива, которая является очень удобной в целях клоакинга – это так называемая карта перезаписи. Это – файлы, содержащие пары ключ/значение, обычно в формате текстового файла:

cde2c920.infoseek.com spider
205.226.201.32 spider
cde2c923.infoseek.com spider
205.226.201.35 spider
cde2c981.infoseek.com spider
205.226.201.129 spider
cde2cb23.infoseek.com spider
205.226.203.35 spider

Ключи, как вы видите, имена хостов или IP адреса. В этом простеньком примере значение всегда одно – «spider». Естественно, в реальном файле значения будут другие. Эта директива может быть записана в второй («Конфигурация основного сервера») или третий («Виртуальные сервера») раздел файла httpd.conf:

RewriteMap botBase txt:/www/yourdomain/spiderspy.txt

«Карта перезаписи» возымеет эффект на весь сервер.

Также, в файл .htaccess записывается:

RewriteCond ${botBase:%{REMOTE_HOST}} =spider [OR]
RewriteCond ${botBase:%{REMOTE_ADDR}} =spider
RewriteRule ^(.*).htm$ $1.htm [L]
RewriteRule ^.*.htm$ index.html [L]

Данные условия будут производить системную проверку: произведен ли запрос поисковиком. С этой целью производится поиск по файлу spiderspy.txt. Если ключ найден, будет возвращено значение «spider», а «условие» будет являться истинным.

Затем выполняется первый RewriteRule. Это означает то, что запрашиваемая «.htm» страница будет отдана поисковику. Переменная $1 равна части в круглых скобках «^(. *).htm$», то есть имя файла останется тем же самым.

Если же URL вызван обычным посетителем, то применяется второе «правило»: пользователь будет перенаправлен на страницу «index.html».

Поскольку «.htm» страницы будут читаться только «пауками», они могут быть оптимизированы соответственно для поисковых серверов. Вы можете также использовать файл в формате «dbm» вместо обычного текстового файла. Бинарный формат данных позволяет ускорить поиск, который является особенно важным, если вы работаете с очень большими списками поисковиков. Пример, данный выше, предлагает простые функциональные возможности клоакинга. Все обычные посетители будут всегда переадресовываться к странице «index.html» и не будет вестись никаких логов файлов вне логов mod_rewrite.

Можно заменить несколько строчек кода php (perl и т.д.) в ваших приложениях, используя всего одну-две строки mod_rewrite. Последний пример проиллюстрирует это более подробно.

Цель – показать посетителям «фото дня». Посетитель, кликнувший по ссылке http://yoursite.com/pic.html увидит лучшую фотографию или картинку дня, и так каждый день. Мы будем работать с серверными переменными:

TIME_MON
TIME_DAY

Поместим в файл .htaccess одну единственную строку:

RewriteRule ^pic.html$ pic-%{TIME_MON}-%{TIME_DAY}.html

Запрашиваемый URL будет перезаписан, например:

pic-08-28.html
pic-08-29.html
pic-08-30.html
и так далее.

Теперь, все что вы должны сделать – это единожды загрузить файлы с соответсвующими именами и забыть о ежедневном обновлении ссылки. Переменные времени также могут использоваться для другой периодичности.

Это был последний пример в серии публикаций о замечательном модуле mod_rewrite. Естественно невозможно было затронуть все нюансы, директивы, переменные и т.д. в данной публикации, целью было другое – дать общее представление и понимание основ, и так сказать «ввести в курс дела».


Автор: DenveroidДата публикации: 17.06.2002
Рейтинг статьи: [4.48] рейтинг статьи: 4.48рейтинг статьи: 4.48рейтинг статьи: 4.48рейтинг статьи: 4.48 [голосов: 27]Кол-во просмотров: 34920
Оценить статью: Установите cookies!

Комментарии читателей:


Сообщение №63 Wasikhttp://forum.sottel.ru/ в новом окне06.10.2002 18:01:20
Пример с клоакингом?
ну да ладно все равно спасибо!
в любом случае достаточно для того чтобы заинтересоваться этим модулем и понять общие принципы его работы!
Сообщение №76 Saшъ 28.10.2002 14:38:38
Вялики дзякуй, все написано просто и реально для работы.
Сообщение №162 Demon 03.03.2003 17:03:35
А какую доку покурить, чтобы узнать про RewriteMap ?
Сообщение №315 kot3245 04.12.2003 19:38:24
Вот еще ссылочка по сабжу правда на буржуйском наречии www.sitepoint.com/article/910
Сообщение №445 Dmitryhttp://dyrpen.org в новом окне27.09.2004 16:37:52
Cпасибо.
Очень полезная статья

» Читать все комментарии...

Ваши комментарии:

Ваше имя:*
Ваш E-mail:
Ваш URL:
HTML запрещен
BB Код разрешен


Ваше сообщение:*
* - обязательные поля для заполнения

Внимание!
Перед появлением сообщения на сайте, оно пройдет премодерацию.

Поиск по сайту:

Последние статьи:
Обработка ошибки 404 Обработка ошибки 404
Модуль mod_rewrite. Часть 3. Модуль mod_rewrite. Часть 3.
Модуль mod_rewrite. Часть 2. Модуль mod_rewrite. Часть 2.
Модуль mod_rewrite. Часть 1. Модуль mod_rewrite. Часть 1.
chmod - изменение режима доступа к файлам chmod - изменение режима доступа к файлам
» архив всех статей
Схожая тематика:
:: Базы данных и SQL
:: Сети
:: Протоколы

Академия веб мастеринга и веб дизайна. Разработка сайта, вёрстка сайта, веб программирование, продвижение ресурса, инструментарий и другие темы, посвященные разработке ресурсов в сети Интернет. Форум для веб мастера.


карта сервера :: форум :: профайл :: авторам :: о сайтеНаверх
Rambler's Top100Rambler's Top100 Valid HTML 4.01! © 2000-2016 Все права защищены
страница создана за 0.018 секунд
На главную страницуDeveloped by SiteMaker