:pserver:anonymous@cvs.middle-man.sourceforge.net:/cvsroot/middle-man middleman
[middleman.git] / config.xml
1 <network>
2         <listen>
3                 <port>8080</port>
4                 <ip>127.0.0.1</ip>
5         </listen>
6 </network>
7
8 <templates>
9         <template>
10                 <enabled>false</enabled>
11                 <comment>just an example</comment>
12                 <name>404</name>
13                 <file>echo \<html\>\<head\>\<title\>File not found\</title\>\</head\>\<body\>\<h2\>\<center\>$HTTP_HOST$HTTP_FILE not found\</center\>\</h2\>\</body\>\</html\></file>
14                 <mime>text/html</mime>
15                 <code>404</code>
16                 <type>executable</type>
17         </template>
18 </templates>
19
20 <external>
21         <enabled>true</enabled>
22         <item>
23                 <enabled>false</enabled>
24                 <comment>just an example</comment>
25                 <mime>text/html</mime>
26                 <exec>sed s/microsoft/m1cr0$0ft/i</exec>
27                 <type>pipe</type>
28         </item>
29 </external>
30
31 <access>
32         <policy>deny</policy>
33         <allow>
34                 <enabled>true</enabled>
35                 <comment>localhost</comment>
36                 <ip>127.0.0.1</ip>
37                 <access>config,proxy,connect,http,transparent,bypass</access>
38         </allow>
39 </access>
40
41 <header>
42         <enabled>true</enabled>
43         <policy>deny</policy>
44         <allow>
45                 <enabled>true</enabled>
46                 <type>Accept(|-Encoding|-Charset|-Language)</type>
47         </allow>
48         <allow>
49                 <enabled>true</enabled>
50                 <type>Host</type>
51         </allow>
52         <allow>
53                 <enabled>true</enabled>
54                 <type>Content-(Type|Length)</type>
55         </allow>
56         <allow>
57                 <enabled>true</enabled>
58                 <type>Cookie</type>
59         </allow>
60         <allow>
61                 <enabled>true</enabled>
62                 <type>Authorization</type>
63         </allow>
64         <allow>
65                 <enabled>true</enabled>
66                 <type>Referer</type>
67         </allow>
68         <allow>
69                 <enabled>true</enabled>
70                 <type>^If-</type>
71         </allow>
72         <insert>
73                 <enabled>true</enabled>
74                 <type>User-Agent</type>
75                 <value>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461)</value>
76         </insert>
77 </header>
78
79 <cookies>
80         <enabled>true</enabled>
81         <policy>allow</policy>
82 </cookies>
83
84 <redirect>
85         <enabled>true</enabled>
86         <item>
87                 <enabled>true</enabled>
88                 <comment>Adding an entry without a redirect field will match but have no effect, this can be used to exclude problematic sites from entries below</comment>
89                 <url>(nytimes.com|washingtonpost.com|yahoo.com|passport.com)/</url>
90                 <which>url</which>
91                 <send302>no</send302>
92                 <options>,,</options>
93         </item>
94         <item>
95                 <enabled>true</enabled>
96                 <comment>bypass most link-tracking scripts (this is known to cause problems with some sites)</comment>
97                 <url>(&|\\?|=|/)http://([^&]+)</url>
98                 <redirect>$2</redirect>
99                 <which>url</which>
100                 <send302>yes</send302>
101                 <options>,,decodeafter</options>
102         </item>
103         <item>
104                 <enabled>true</enabled>
105                 <comment>bypass advertisement click-thru on msnbc</comment>
106                 <url>msnbc.com/ads/trans/taDisplay.asp\\?realURL=([^&]+)</url>
107                 <redirect>www.msnbc.com$1?ta=y</redirect>
108                 <which>url</which>
109                 <send302>yes</send302>
110                 <options>,,</options>
111         </item>
112         <item>
113                 <enabled>true</enabled>
114                 <comment>alias for searching google</comment>
115                 <url>^search/(.*)</url>
116                 <redirect>www.google.com/search?q=$1</redirect>
117                 <which>url</which>
118                 <send302>yes</send302>
119                 <options>,,</options>
120         </item>
121         <item>
122                 <enabled>true</enabled>
123                 <comment>bypass sourceforge mirror selection</comment>
124                 <url>prdownloads.sourceforge.net/([^\\?]+)</url>
125                 <redirect>telia.dl.sourceforge.net/$1</redirect>
126                 <which>url</which>
127                 <send302>yes</send302>
128                 <options>,,</options>
129         </item>
130         <item>
131                 <enabled>true</enabled>
132                 <url>^help/</url>
133                 <redirect>cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/middle-man/middleman/README.html?rev=HEAD&content-type=text/html</redirect>
134                 <which>url</which>
135                 <send302>yes</send302>
136                 <options>,,</options>
137         </item>
138 </redirect>
139
140 <keywords>
141         <enabled>true</enabled>
142         <threshold>0</threshold>
143 </keywords>
144
145 <forward>
146         <enabled>true</enabled>
147         <item>
148                 <enabled>false</enabled>
149                 <comment>forward all HTTP requests through local squid proxy</comment>
150                 <proxy>127.0.0.1</proxy>
151                 <port>3128</port>
152                 <type>HTTP</type>
153                 <which>HTTP,</which>
154         </item>
155 </forward>
156
157 <filter>
158         <enabled>true</enabled>
159         <policy>allow</policy>
160         <default>checkeredgif</default>
161         <deny>
162                 <enabled>true</enabled>
163                 <file>/banner(|s)/</file>
164         </deny>
165         <deny>
166                 <enabled>true</enabled>
167                 <host>^ad(|s|v|server)\\.</host>
168         </deny>
169         <deny>
170                 <enabled>true</enabled>
171                 <file>/ad(|s|v|(|_)banner(|s))/</file>
172         </deny>
173         <deny>
174                 <enabled>true</enabled>
175                 <file>/adx/</file>
176         </deny>
177         <deny>
178                 <enabled>true</enabled>
179                 <file>/sponsors/</file>
180         </deny>
181         <deny>
182                 <enabled>true</enabled>
183                 <file>/advert/</file>
184         </deny>
185         <deny>
186                 <enabled>true</enabled>
187                 <file>/adcycle/</file>
188         </deny>
189         <deny>
190                 <enabled>true</enabled>
191                 <host>adtag\\.</host>
192         </deny>
193         <deny>
194                 <enabled>true</enabled>
195                 <host>targetsearches.com</host>
196         </deny>
197         <deny>
198                 <enabled>true</enabled>
199                 <file>/track/</file>
200         </deny>
201         <deny>
202                 <enabled>true</enabled>
203                 <file>/promo/</file>
204         </deny>
205         <deny>
206                 <enabled>true</enabled>
207                 <file>/adspace/</file>
208         </deny>
209         <deny>
210                 <enabled>true</enabled>
211                 <file>/admentor/</file>
212         </deny>
213         <deny>
214                 <enabled>true</enabled>
215                 <file>/image\\.ng/</file>
216         </deny>
217         <deny>
218                 <enabled>true</enabled>
219                 <file>/ajrotator/</file>
220         </deny>
221         <deny>
222                 <enabled>true</enabled>
223                 <file>/adview.php</file>
224         </deny>
225         <deny>
226                 <enabled>true</enabled>
227                 <file>/clickthru</file>
228         </deny>
229         <deny>
230                 <enabled>true</enabled>
231                 <file>/affiliates</file>
232         </deny>
233         <deny>
234                 <enabled>true</enabled>
235                 <file>banmat(\\.cgi|.\\.cgi)</file>
236         </deny>
237         <deny>
238                 <enabled>true</enabled>
239                 <host>webconnect.net</host>
240         </deny>
241         <deny>
242                 <enabled>true</enabled>
243                 <file>/adverts/</file>
244         </deny>
245         <deny>
246                 <enabled>true</enabled>
247                 <file>/adproof/</file>
248         </deny>
249         <deny>
250                 <enabled>true</enabled>
251                 <file>/bannerfarm/</file>
252         </deny>
253         <deny>
254                 <enabled>true</enabled>
255                 <file>/BannerAds/</file>
256         </deny>
257         <deny>
258                 <enabled>true</enabled>
259                 <file>/banner_</file>
260         </deny>
261         <deny>
262                 <enabled>true</enabled>
263                 <host>imgis.com</host>
264         </deny>
265         <deny>
266                 <enabled>true</enabled>
267                 <host>atwola.com</host>
268         </deny>
269         <deny>
270                 <enabled>true</enabled>
271                 <host>fastclick.net</host>
272         </deny>
273         <deny>
274                 <enabled>true</enabled>
275                 <host>abz.com</host>
276         </deny>
277         <deny>
278                 <enabled>true</enabled>
279                 <host>tribalfusion.com</host>
280         </deny>
281         <deny>
282                 <enabled>true</enabled>
283                 <host>advertising.com</host>
284         </deny>
285         <deny>
286                 <enabled>true</enabled>
287                 <host>atdmt.com</host>
288         </deny>
289         <deny>
290                 <enabled>true</enabled>
291                 <host>spinbox\\.(com|net)</host>
292         </deny>
293         <deny>
294                 <enabled>true</enabled>
295                 <host>linkexchange.com</host>
296         </deny>
297         <deny>
298                 <enabled>true</enabled>
299                 <host>hitbox.com</host>
300         </deny>
301         <deny>
302                 <enabled>true</enabled>
303                 <host>doubleclick.net</host>
304         </deny>
305         <deny>
306                 <enabled>true</enabled>
307                 <file>sponsorid</file>
308         </deny>
309         <deny>
310                 <enabled>true</enabled>
311                 <host>valueclick.com</host>
312         </deny>
313         <deny>
314                 <enabled>true</enabled>
315                 <host>click2net.com</host>
316         </deny>
317         <deny>
318                 <enabled>true</enabled>
319                 <host>mediaplex.com</host>
320         </deny>
321         <deny>
322                 <enabled>true</enabled>
323                 <host>247media.com</host>
324         </deny>
325         <deny>
326                 <enabled>true</enabled>
327                 <host>clickagents.com</host>
328         </deny>
329         <deny>
330                 <enabled>true</enabled>
331                 <host>adbutler.com</host>
332         </deny>
333         <deny>
334                 <enabled>true</enabled>
335                 <file>/servfu.pl</file>
336         </deny>
337         <deny>
338                 <enabled>true</enabled>
339                 <host>qkimg.net</host>
340         </deny>
341         <deny>
342                 <enabled>true</enabled>
343                 <host>realmedia.com</host>
344         </deny>
345         <deny>
346                 <enabled>true</enabled>
347                 <file>/RealMedia/</file>
348         </deny>
349         <deny>
350                 <enabled>true</enabled>
351                 <host>us.a1.yimg.com</host>
352         </deny>
353         <deny>
354                 <enabled>true</enabled>
355                 <host>clickheretofind.com</host>
356         </deny>
357         <deny>
358                 <enabled>true</enabled>
359                 <host>images.cybereps.com</host>
360         </deny>
361         <deny>
362                 <enabled>true</enabled>
363                 <host>adbureau.net</host>
364         </deny>
365         <deny>
366                 <enabled>true</enabled>
367                 <host>sfads.osdn.com</host>
368         </deny>
369         <deny>
370                 <enabled>true</enabled>
371                 <host>adflow.com</host>
372         </deny>
373         <deny>
374                 <enabled>true</enabled>
375                 <host>adprofs.com</host>
376         </deny>
377         <deny>
378                 <enabled>true</enabled>
379                 <host>zedo.com</host>
380         </deny>
381         <deny>
382                 <enabled>true</enabled>
383                 <host>digitalmedianet.com</host>
384         </deny>
385         <deny>
386                 <enabled>true</enabled>
387                 <host>ad-flow.com</host>
388         </deny>
389         <deny>
390                 <enabled>true</enabled>
391                 <file>/adsync/</file>
392         </deny>
393         <deny>
394                 <enabled>true</enabled>
395                 <host>adtech.de</host>
396         </deny>
397         <deny>
398                 <enabled>true</enabled>
399                 <host>netdirect.nl</host>
400         </deny>
401         <deny>
402                 <enabled>true</enabled>
403                 <file>_ad_</file>
404         </deny>
405         <deny>
406                 <enabled>true</enabled>
407                 <host>rcm-images.amazon.com</host>
408         </deny>
409         <deny>
410                 <enabled>true</enabled>
411                 <host>pamedia.com</host>
412         </deny>
413         <deny>
414                 <enabled>true</enabled>
415                 <host>msads.net</host>
416         </deny>
417         <deny>
418                 <enabled>true</enabled>
419                 <host>valuead.com</host>
420         </deny>
421         <deny>
422                 <enabled>true</enabled>
423                 <host>smartadserver.com</host>
424         </deny>
425         <deny>
426                 <enabled>true</enabled>
427                 <host>thisbanner.com</host>
428         </deny>
429 </filter>
430
431 <mime>
432         <enabled>true</enabled>
433         <policy>allow</policy>
434 </mime>
435
436 <rewrite>
437         <enabled>true</enabled>
438         <item>
439                 <enabled>false</enabled>
440                 <comment>Adding a rule with a host, file, or mime field but no pattern will cause it to be the last rule applied if it matches.</comment>
441                 <host>somesite.com</host>
442                 <which>,,body,</which>
443         </item>
444         <item>
445                 <enabled>true</enabled>
446                 <comment>Change referer to make page appear as if it were reloaded</comment>
447                 <pattern>^(GET|POST)\\shttp://([^/]*)([^\\s]*)(.*)^Referer:\\shttp://([^/]*\\.\\.|)[^\\n]*(.*)</pattern>
448                 <replace>$1 http://$2$3$4Referer: http://$5$2$3$6</replace>
449                 <which>,client,,</which>
450         </item>
451         <item>
452                 <enabled>true</enabled>
453                 <comment>Change link URL to linked text if linked text is a URL</comment>
454                 <mime>text/html</mime>
455                 <pattern>\<a([^\>]+)href\\s*=\\s*("|')[^\>]+("|')([^\>]*)\>\\s*(http|ftp)://(\\S+)\\s*\</a\></pattern>
456                 <replace>\<a$1href=$2$5://$6$3$4\>$5://$6\</a\></replace>
457                 <which>,,body,</which>
458         </item>
459         <item>
460                 <enabled>false</enabled>
461                 <comment>bypass filtering for advertisements on slashdot</comment>
462                 <host>slashdot.org</host>
463                 <mime>text/html</mime>
464                 <pattern>\<img([^\>]+)src\\s*=\\s*("|')http://([^"']*)("|')([^\>]*)\></pattern>
465                 <replace>\<img$1src=$2http://bypass..$3$4$5\></replace>
466                 <which>,,body,</which>
467         </item>
468         <item>
469                 <enabled>true</enabled>
470                 <comment>remove http-equiv cookies</comment>
471                 <mime>text/html</mime>
472                 <pattern>\<meta\\s+http-equiv=['"]?set-cookie['"]?\\s+content=[^\>].*\></pattern>
473                 <which>,,body,</which>
474         </item>
475         <item>
476                 <enabled>true</enabled>
477                 <comment>remove 1x1 images (webbugs)</comment>
478                 <mime>text/html</mime>
479                 <pattern>\<img\\s+[^\>]*?(width|height)\\s*=\\s*['"]?1\\D[^\>]*?(width|height)\\s*=\\s*['"]?1(\\D[^\>]*?)?\></pattern>
480                 <which>,,body,</which>
481         </item>
482         <item>
483                 <enabled>true</enabled>
484                 <comment>show link location along with custom label in statusbar</comment>
485                 <mime>(text/html|application/x-javascript)</mime>
486                 <pattern>(([\\n =;{}]|window\\.)(default)?status\\s*=)</pattern>
487                 <replace>$1this.href + ' label: ' +</replace>
488                 <which>,,body,</which>
489         </item>
490         <item>
491                 <enabled>true</enabled>
492                 <comment>prevent scripts from seeing referrer</comment>
493                 <mime>text/html</mime>
494                 <pattern>(\<script.*)document\\.referrer(.*\</script\>)</pattern>
495                 <replace>$1"nevermind"$2</replace>
496                 <which>,,body,</which>
497         </item>
498         <item>
499                 <enabled>true</enabled>
500                 <comment>prevent javascript's from seeing referrer</comment>
501                 <mime>application/x-javascript</mime>
502                 <pattern>document\\.referrer</pattern>
503                 <replace>"nevermind"</replace>
504                 <which>,,body,</which>
505         </item>
506         <item>
507                 <enabled>true</enabled>
508                 <comment>remove non-standard (and annoying) microsoft html extension</comment>
509                 <mime>text/html</mime>
510                 <pattern>\<blink\>(.*)\</blink\></pattern>
511                 <replace>$1</replace>
512                 <which>,,body,</which>
513         </item>
514         <item>
515                 <enabled>true</enabled>
516                 <comment>ensure new windows are resizable</comment>
517                 <mime>text/html</mime>
518                 <pattern>(\<a\\s+href[^\>]+)resizable=['"]?(no|0|false)['"]?(.*\>)</pattern>
519                 <replace>$1resizable="1"$3</replace>
520                 <which>,,body,</which>
521         </item>
522         <item>
523                 <enabled>true</enabled>
524                 <comment>ensure new windows have a location</comment>
525                 <mime>text/html</mime>
526                 <pattern>(\<a\\s+href[^\>]+)location=['"]?(no|0)['"]?(.*\>)</pattern>
527                 <replace>$1location="1"$3</replace>
528                 <which>,,body,</which>
529         </item>
530         <item>
531                 <enabled>true</enabled>
532                 <comment>ensure new windows have a menubar</comment>
533                 <mime>text/html</mime>
534                 <pattern>(\<a\\s+href[^\>]+)menubar=['"]?(no|0)['"]?(.*\>)</pattern>
535                 <replace>$1menubar="1"$3</replace>
536                 <which>,,body,</which>
537         </item>
538         <item>
539                 <enabled>true</enabled>
540                 <comment>ensure new windows have a status bar</comment>
541                 <mime>text/html</mime>
542                 <pattern>(\<a\\s+href[^\>]+)status=['"]?(no|0)['"]?(.*\>)</pattern>
543                 <replace>$1status="1"$3</replace>
544                 <which>,,body,</which>
545         </item>
546         <item>
547                 <enabled>true</enabled>
548                 <comment>ensure new windows have a scrollbar</comment>
549                 <mime>text/html</mime>
550                 <pattern>(\<a\\s+href[^\>]+)scrolling=['"]?(no|0|auto)['"]?(.*\>)</pattern>
551                 <replace>$1scrolling="no"$3</replace>
552                 <which>,,body,</which>
553         </item>
554 </rewrite>