У меня есть, Apache web server
который доставляет статические HTML-страницы. По какой-то причине я не могу изменить сами файлы, но я все еще хочу внедрить немного HTML в каждую страницу, которая обслуживается.
Это возможно с mod_proxy
? Если нет, может ли кто-нибудь порекомендовать программное обеспечение, которое обеспечивает такую функцию?
РЕДАКТИРОВАТЬ: я должен вставить какой-то рекламный баннер (например, а javascript
) и пиксель отслеживания.
источник
ScriptAlias
и<Directory /some/static/>...</Directory>
, и<Directory /path/to/cgi-bin/> Options +ExecCGI</Directory>
т.д. Я не хочу вмешиваться в ответ пользователя, но если вы спрашиваете, я дам больше информации.<?php ob_start(); include("/some/static/page.html"); $contents = ob_get_contents(); ob_end_clean(); echo str_replace('</head>', '<script async>Some script content goes here like adsense code</script></head>', $contents) ?>
используйте $ content для загрузки остальной части содержимого страницы. Вы можете сохранить этот файл как htmlinjector.php или как угодно и вызвать его в своем файле htaccess, например так:Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} /some/static/page.html RewriteRule ^(.*)$ /htmlinjector.php?url=/some/static/page.html
Я не уверен, почему это не было упомянуто в списке ответов. Извините, если мне потребовалось 2 года, чтобы увидеть этот вопрос ...
Самый простой и эффективный способ сделать то, что вы хотите, - это использовать фильтр Apache .
Просто иметь:
Возможный скрипт:
Это изменит все «а» на «а».
Обязательно включите фильтр в вашем httpd.conf, например так:
Этот вопрос занимает очень важное место в Google, и там не так много с точки зрения форумов
источник
Вот учебник о том, как использовать mod_proxy_html для редактирования ссылок на веб-странице (в контенте). Вы могли бы применить это изменить HTML, который вы хотите.
ОБНОВЛЕНИЕ: Вы уверены, что хотите пойти этим путем? Я думаю, что Apache предназначен для обслуживания контента, а не для его создания. Это, вероятно, будет идти в части представления структуры MVC. Причина, по которой я бы не рекомендовал это, состоит в том, что вы нарушаете правило модульности . Ваше веб-приложение будет переплетено с приложением, которое его обслуживает, что усложнит будущие обновления, перемещения и т. Д.
источник
Я бы предпочел сделать это с mod_rewrite и SSI.
Сначала поместите путь в переменную окружения
затем обработайте это в файле shtml
(части этого решения основаны на вопросе stackoverflow /programming/40133/getting-apache-to-modify-static-webpages-on-the-fly/1196832 )
источник
Здесь хорошо подходит mod_sed . Например, вы можете создать выходной фильтр, который соответствует закрывающей метке заголовка или тела, и вставить HTML-код перед ним.
источник
Будет ли полезным модуль mod_perl?
http://search.cpan.org/~gozer/Apache2-Layout-0.6/lib/Apache2/Layout.pm
Это может сделать то, что вы хотите, или, по крайней мере, направить вас в правильном направлении.
источник
Вы можете использовать Apache mod_substitute для внедрения html в исходящие ответы, используя некоторые критерии или регулярные выражения. Вот объяснение того, как этого добиться.
источник
вы можете заглянуть в директивы верхнего и нижнего колонтитула apache, используя директивы ниже.
Больше чтения здесь: http://wannabe.guru.org/scott/hobbies/apache/
источник
Макет мода теперь устарел, и если вы не хотите накладывать расходы на вызов внешнего скрипта, лучшее решение, которое сработало для меня, - это мода . Вы можете использовать mod sed, чтобы соответствовать первой строке документа (1 с) и добавить туда код сценария заголовка, а также последнюю строку ($ s) и поместить туда нижний колонтитул.
источник
Я могу вставить HTML на все страницы через Apache, но только для сайта, который размещен на моем Apache, не для всех сайтов, хотя мой прокси-сервер Apache.
Вот как это работает. я установил XAMPP, скачал mod_layout 5.1 для apache 2.4. (установить mod_layout просто, если вы используете XAMPP для Windows, просто скачайте mod_layout.so 5.1 для Windows и поместите его в папку вашего модуля apache $ home / apache / module, затем добавьте DSO конфигурации в ваши httpd.conf LoadModule layout_module modules / mod_layout.so - если вы используете linux или другую ОС, вам нужно скачать mod_layout.so для linux, а затем запустить команду make для установки)
После установки mod_layout.so для Windows просто поместите этот код в свой файл .htaccess или в httpd.conf вы получите html-вставку на всю свою страницу:
C: /xampp/apache/cgi-bin/footer.php - это место, куда вы помещаете html или php файл, в моей ситуации это C: /xampp/apache/cgi-bin/footer.php, но вы можете поместить его в любое место Дай правильный путь, у тебя все будет хорошо
источник