Apache переписать на основе типа MIME

У меня есть виртуальный хост в моей конфигурации Apache для работы с рекламой, спамом и вредоносными сайтами. Это работает, когда плохие серверы перенаправляют на определенный адрес обратной связи, который отображается на виртуальный хост через файл HOSTS.

Используя следующие директивы, я смог заменить любые страницы с плохих серверов чем-то вроде [ad] и любую графику с плохих серверов локальным прозрачным PNG-файлом 1x1.

RewriteRule \.(gif|jpg|png|jpeg)$ /1x1-trans.png
ErrorDocument 404 "<p>[ad]</p>"

Однако недавно я видел страницы со сломанными тегами IMG, потому что они используют SRC без расширения файла.

<img src="http://badserver.com/adsandjunk/foobar;tile=4;sz=575x90;othervariables=stuff?">

Я пытался с помощью

RewriteRule ^.*$ "<p>ad</p>" [L]

Но это дает разбитое изображение заполнителей снова. Используя это

RewriteRule ^.*$ /1x1-trans.png [L]

Исправляет изображения, но затем любые не изображения (например, страницы, рамки и т. Д.) Всплывают в диалоговом окне "Сохранить как" для PNG.

Как я могу заставить Apache заменить графику (т. Е. Любой тег IMG) на графику, а все остальное - на HTML?

Большое спасибо.

2 ответа

Просто из любопытства, вы используете Apache в качестве обратного прокси-сервера? Я понимаю, что это единственный контекст, в котором у вас есть виртуальный хост, который "справляется с рекламой, спамом и вредоносными сайтами".

Я не уверен, что это проблема mod_rewrite. Вам может быть лучше использовать фильтрацию:

http://httpd.apache.org/docs/2.0/mod/mod_ext_filter.html

Особенно раздел, где они используют sed для замены текста. Вы можете использовать практически все, что угодно, Perl и т. Д.

Я сам этого не делал, но маршрут sed выглядит многообещающе, если вы сможете объединить конкретные критерии поиска и замены.

Вы делаете это трудным путем. Просто используйте Privoxy.

Другие вопросы по тегам