СтатьиМодуль mod_rewrite. Часть 4
В этой публикации мы затронем те директивы, которые не успели охватить в предыдущих частях. Эти директивы не поддаются определению на уровне директорий. Это означает то, что вы должны иметь доступ к файлу конфигурации веб сервера Apache (
Обычно такой доступ имеют пользователи
Если вы хотите вести логи всех операций, выполненных с помощью RewriteLog /usr/local/apache/logs/mod_rewrite_log RewriteLogLevel 1
Эту строку нужно вписать в "Раздел 2: Конфигурация основного сервера" в файле
Все манипуляции, произведенные Если вы хотите вести разные лог файлы для различных виртуальных хостов, то нужно ввести изменения в "Раздел 3: Виртуальные сервера", например так: ServerAdmin webmaster@yourdomain.com DocumentRoot /usr/www/htdocs/yourdomain ServerName yourdomain.com RewriteLog /usr/apache/logs/yourdomain_mod_rewrite_log RewriteLogLevel 1
Другая директива, которая является очень удобной в целях клоакинга — это так называемая карта перезаписи. Это — файлы, содержащие пары ключ/значение, обычно в формате текстового файла: 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 адреса. В этом простеньком примере значение всегда одно — RewriteMap botBase txt:/www/yourdomain/spiderspy.txt "Карта перезаписи" возымеет эффект на весь сервер.
Также, в файл RewriteCond ${botBase:%{REMOTE_HOST}} =spider [OR] RewriteCond ${botBase:%{REMOTE_ADDR}} =spider RewriteRule ^(.*).htm$ $1.htm [L] RewriteRule ^.*.htm$ index.html [L]
Данные условия будут производить системную проверку: произведен ли запрос поисковиком. С этой целью производится поиск по файлу
Затем выполняется первый
Если же URL вызван обычным посетителем, то применяется второе правило: пользователь будет перенаправлен на страницу
Поскольку
Можно заменить несколько строчек кода
Цель — показать посетителям "фото дня". Посетитель, кликнувший по ссылке TIME_MON TIME_DAY
Поместим в файл RewriteRule ^pic.html$ pic-%{TIME_MON}-%{TIME_DAY}.html Запрашиваемый URL будет перезаписан, например: pic-08-28.html pic-08-29.html pic-08-30.html и так далее. Теперь, все что вы должны сделать — это единожды загрузить файлы с соответсвующими именами и забыть о ежедневном обновлении ссылки. Переменные времени также могут использоваться для другой периодичности.
Это был последний пример в серии публикаций о замечательном модуле |
||