П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3549 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6135 раз(а).

Учебник HTML.
Просмотров 3289 раз(а).

Руководство по PHP5.
Просмотров 5516 раз(а).

Хостинг через призму DNS.
Просмотров 4165 раз(а).

Подборка текстов стандартных документов.
Просмотров 55785 раз(а).

Учебник PHP - Самоучитель
Просмотров 3108 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 6005 раз(а).

Внешние атаки...
Просмотров 3857 раз(а).

Учебник PHP.
Просмотров 2833 раз(а).

SSI в примерах.
Просмотров 37472 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Часть 4. Логирование действий модуля mod_rewrite.

В этой публикации мы затронем те директивы, которые не успели охватить в предыдущих частях. Эти директивы не поддаются определению на уровне директорий. Это означает то, что вы должны иметь доступ к файлу конфигурации веб сервера 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 адреса. В этом простеньком примере значение всегда одно - . Естественно, в реальном файле значения будут другие.
Эта директива может быть записана в второй (<Конфигурация основного сервера>) или третий (<Виртуальные сервера>) раздел файла 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. Если ключ найден, будет возвращено значение , а <условие> будет являться истинным.

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

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

Поскольку <.htm> страницы будут читаться только <пауками>, они могут быть оптимизированы соответственно для поисковых серверов. Вы можете также использовать файл в формате вместо обычного текстового файла. Бинарный формат данных позволяет ускорить поиск, который является особенно важным, если вы работаете с очень большими списками поисковиков. Пример, данный выше, предлагает простые функциональные возможности клоакинга. Все обычные посетители будут всегда переадресовываться к странице и не будет вестись никаких логов файлов вне логов 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. Естественно невозможно было затронуть все нюансы, директивы, переменные и т.д. в данной публикации, целью было другое - дать общее представление и понимание основ, и так сказать <ввести в курс дела>.

[ Назад ] [ Содержание ] [ Вперед ]



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru