mod_layout и mod_filter: принудительная вставка кода (рекламы) в веб-страницы на сервере Apache

archive view archive save

Apache mod_layout, mod_filter: принудительная вставка кода (рекламы) в веб-страницы на сервере Apache Начинающие хостинг-провайдеры предлагая бесплатный хостинг выживают за счёт принудительно вставляемой рекламы в клиентские веб-страницы сайтов. Для принудительной вставки кода (рекламы) в страницы на сервере Apache обычно используют mod_layout или mod_filter.

Начинающие хостинг-провайдеры предлагая бесплатный хостинг выживают за счёт принудительно вставляемой рекламы в клиентские веб-страницы сайтов. Для принудительной вставки кода (рекламы) в страницы на сервере Apache обычно используют mod_layout или mod_filter.

Говорят, что в последнее время учёные всего мира трудятся над поиском способа принудительной вставки рекламы в сны человеков, а в веб-страницы на сервере Apache уже вроде как научились принудительно впихивать всякого рода, невпихуемое при обычных условиях, содержимое в т.ч. и рекламу.

Для веб-сервера Apache существует множество модулей почти на любой случай жизни. mod_layout и mod_filter предназначены для принудительной вставки рекламы или любой другой информации (баннера, сообщения) в клиентские веб-страницы сайтов.

Например на платных хостинг площадках модули mod_layout и mod_filter можно использовать для показа всем клиентам предупреждения о проведении технических работ в связи с которыми их сайты могут быть не доступны или гневной мессаги типа "Как же вы гады все меня достали! Чтоб вам РНР отсох и ХТМЛ перекосило! С завтрашнего дня шиш вам, а не бесплатный хостинг! Пошли все в ЖО..!".

Установка и настройка mod_layout под Apache

Перед установкой mod_layout под Apache сначала нужно определится какая именно версия mod_layout нужно устанавливать. Для разных веток веб-сервера Apache предназначены разные ветки модуля mod_layout, например:

  • Если вы используете Apache 1.3 то вам нужен mod_layout-3.x
  • Если вы используете Apache 2 (2.0, 2.1) то вам нужен mod_layout-4.x
  • Если вы используете Apache 2.2 то вам нужен mod_layout-5.x

Обычно для установки mod_layout под Apache в UNIX подобных ОС нет необходимости в компиляции исходного кода и модуль mod_layout уже существует в бинарном (скомпилированном) виде, а для его установки обычно хватает pkg_add mod_layout or yum install mod_layout.

В портах FreeBSD mod_layout присутствует в трех вариантах, под Apache 1.3 – /usr/ports/www/mod_layout, под Apache 2.0 и 2.1 – /usr/ports/www/mod_layout2/ и под Apache 2.2 – /usr/ports/www/mod_layout22/. Принципиально в настройке они не отличаются. Устанавливаем:

cd /usr/ports/www/mod_layout/
make install clean

Установка не утомляет лишними вопросами, а по окончании установки загрузка модуля самодобавляется в httpd.conf и всё, что от нас требуется, это добавить настройки модуля. Обычно хватает таких настроек:

    AddOutputFilterByType LAYOUT text/html
    AddOutputFilterByType LAYOUT php
    LayoutHeader /home/www/remotehelp.org.ua/layout/header.html
    LayoutFooter /home/www/remotehelp.org.ua/layout/footer.html
 

Если на выходе получаем абракадабру, то пробуем отключать mod_deflate! LayoutHeader и LayoutFooter основные/главные директивы настройки модуля, но существует ещё целый ряд директив таких как:

Layout
LayoutHeader
LayoutFooter
LayoutHandler
LayoutProxy
LayoutComment
LayoutDefaultHandlers
LayoutDisplayOriginal
LayoutIgnoreURI
LayoutIgnoreHeaderURI
LayoutIgnoreFooterURI
LayoutHTTPHeaderOff
LayoutFooterOff
LayoutHeaderOff
LayoutHTTPHeader
LayoutTimeFormat 
LayoutPostAsync 
LayoutMergeErrorIgnore 
LayoutMerge 
LayoutMergeBeginTag 
LayoutMergeEndTag 
LayoutCache 
LayoutCacheNeeded 
LayoutAppend 
LayoutAppendHeader 
LayoutAppendFooter 
LayoutIgnoreTag 
LayoutIgnoreTagHeader 
LayoutIgnoreTagFooter

В отдельных случаях компиляции/сборки mod_layout из исходных кодов возможно потребуется правка Makefile. Полное описание директив модуля mod_layout для Apache можно поискать по этой ссылке: http://www.musc.edu/webserver/mod_layout.html

Установка и настройка mod_filter под Apache

Модуль mod_filter предназначен для перехвата вывода любого обработчика (handler-a) apache (html, PHP, ModPerl, JServ) и передачи его на вход любому указанному в конфигурации CGI-скрипту. Т.е. простой скрипт, может являться фильтром для целой группы документов, например, для принудительной вставки баннера или заголовка и футера.

Скачать сходники mod_filter

Судя по документации из архива mod_filter-4ced473b941c.tar.gz для поддержки/установки данного модуля веб-сервером Apache его (Apache) нужно перекомпилировать из исходных кодов вызвав скрипт конфигурации с добавлением опции --add-module=/mod_filter.c

По сравнению mod_layout с mod_filter, справка по настройке последнего является более мутной и не полной. Справка по модулю apache mod_filter тут: http://httpd.apache.org/docs/2.2/mod/mod_filter.html

В каталоге contrib/ архива mod_filter-4ced473b941c.tar.gz обнаружены примеры фильтров:

  • echo.cgi : Just echo's everything it gets back to the browser
  • eecummings: Converts all output to lowercase
  • head.cgi : Will add a header to anything with a BODY, including stupid FRAMES.

При помощи модуля mod_filter вышеупомянутые фильтры предлагается использовать примерно следующим образом:

LoadModule filter_module libexec/apache22/mod_filter.so
FilterEngine On
Filter text/html /eecummings.cgi
Filter perl-script SSIFILTER

Приведённый выше пример по идее должен вывести все html (не рнр!) строки/содержимое в нижнем регистре и если факир был достаточно трезв и этот фокус удался, то мы можем дальше продолжать эксперименты с использованием mod_filter но, здаётся мне, что использование mod_layout является менее геморройным и более продуктивным вариантом для принудительной вставки кода (рекламы) в чужие ХТМЛ документы.

А если кто знает другие способы принудительной вставки кода (рекламы) в РНР/ХТМЛ веб-страницы на сервере Apache, то милости просим, не стесняемся и пишем в комментарии. ЖабаСкрипт не предлагать - отстой!


Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора
Комментарии в блоге
Новое на форуме