Начинающие хостинг-провайдеры предлагая бесплатный хостинг выживают за счёт принудительно вставляемой рекламы в клиентские веб-страницы сайтов. Для принудительной вставки кода (рекламы) в страницы на сервере 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_layout-2.8.tar.gz
- После проект mod_layout размещался здесь (ссылка мертва)
- Теперь проект mod_layout находится тут (mod_layout-5.0)
Установка и настройка mod_filter под Apache
Модуль mod_filter предназначен для перехвата вывода любого обработчика (handler-a) apache (html, PHP, ModPerl, JServ) и передачи его на вход любому указанному в конфигурации CGI-скрипту. Т.е. простой скрипт, может являться фильтром для целой группы документов, например, для принудительной вставки баннера или заголовка и футера.
Судя по документации из архива 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, то милости просим, не стесняемся и пишем в комментарии. ЖабаСкрипт не предлагать - отстой!