我的Apacheconfiguration中有一个虚拟主机来处理广告,垃圾邮件和恶意软件网站。 它通过将不良服务器redirect到通过HOSTS文件映射到虚拟主机的特定环回地址来工作。
使用下面的指令,我已经能够使用类似[ad]的东西来replace坏服务器中的任何页面,并且使用本地1×1透明的PNG文件replace坏服务器中的任何图片。
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]
修复图像,但是然后任何非图像(如页面,框架等)popup“另存为”对话框的PNG。
我怎样才能让Apache用graphics和其他所有的HTML代替graphics(即任何IMG标签)?
非常感谢。
出于好奇,你在这里使用Apache作为反向代理吗? 这是我能理解你拥有虚拟主机“处理广告,垃圾邮件和恶意软件网站”的唯一环境。
我不确定这是一个mod_rewrite问题。 使用filter可能会更好:
http://httpd.apache.org/docs/2.0/mod/mod_ext_filter.html
特别是他们使用sed来代替文本的部分。 你真的可以使用任何东西,perl等
我自己并没有这样做,但是如果你可以拼凑特定的search和replace标准的话,sed的路线看起来很有希望。
你这样做是困难的。 只要使用Privoxy 。