Default Configurations
@@ -2044,7 +1942,7 @@ for details.
Image tag reorderingno
- no
+ yesyes
@@ -2181,7 +2079,7 @@ for details.
- { +handle-as-image +block }
+ { +handle-as-image +block{Banner ads.} }
# Block these as if they were images. Send no block page.
banners.example.com
media.example.com/.*banners
@@ -2223,9 +2121,9 @@ for details.
The pattern matching syntax is different for the domain and path parts of
the URL. The domain part uses a simple globbing type matching technique,
- while the path part uses a more flexible
+ while the path part uses more flexible
Regular
- Expressions (PCRE) based syntax.
+ Expressions (POSIX 1003.2).
@@ -2250,7 +2148,7 @@ for details.
- www.example.com/index.html$
+ www.example.com/index.html
matches all the documents on www.example.com
@@ -2404,20 +2302,16 @@ for details.
The Path Pattern
- Privoxy uses Perl compatible (PCRE)
+ Privoxy uses modern POSIX 1003.2
Regular
- Expression based syntax
- (through the PCRE library) for
- matching the path portion (after the slash), and is thus more flexible.
+ Expressions for matching the path portion (after the slash),
+ and is thus more flexible.
There is an Appendix with a brief quick-start into regular
- expressions, and full (very technical) documentation on PCRE regex syntax is available on-line
- at http://www.pcre.org/man.txt.
- You might also find the Perl man page on regular expressions (man perlre)
- useful, which is available on-line at http://perldoc.perl.org/perlre.html.
+ expressions, you also might want to have a look at your operating system's documentation
+ on regular expressions (try man re_format).
@@ -2611,7 +2505,7 @@ for details.
-name # disable action name
- Example: +block
+ Example: +handle-as-image
@@ -2794,14 +2688,14 @@ for details.
Type:
- Boolean.
+ Parameterized.Parameter:
- N/A
+ A block reason that should be given to the user.
@@ -2810,14 +2704,10 @@ for details.
Privoxy sends a special BLOCKED page
- for requests to blocked pages. This page contains links to find out why the request
- was blocked, and a click-through to the blocked content (the latter only if compiled with the
- force feature enabled). The BLOCKED page adapts to the available
- screen space -- it displays full-blown if space allows, or miniaturized and text-only
- if loaded into a small frame or window. If you are using Privoxy
- right now, you can take a look at the
- BLOCKED
- page.
+ for requests to blocked pages. This page contains the block reason given as
+ parameter, a link to find out why the block action applies, and a click-through
+ to the blocked content (the latter only if the force feature is available and
+ enabled).
A very important exception occurs if both
@@ -2847,18 +2737,18 @@ for details.
Example usage (section):
- {+block}
+ {+block{No nasty stuff for you.}}
# Block and replace with "blocked" page
.nasty-stuff.example.com
-{+block +handle-as-image}
+{+block{Doubleclick banners.} +handle-as-image}
# Block and replace with image
.ad.doubleclick.net
.ads.r.us/banners/
-{+block +handle-as-empty-document}
+{+block{Layered ads.} +handle-as-empty-document}
# Block and then ignore
- adserver.exampleclick.net/.*\.js$
+ adserver.example.net/.*\.js$
@@ -2868,6 +2758,76 @@ for details.
+
+
+change-x-forwarded-for
+
+
+
+ Typical use:
+
+ Improve privacy by not forwarding the source of the request in the HTTP headers.
+
+
+
+
+ Effect:
+
+
+ Deletes the X-Forwarded-For: HTTP header from the client request,
+ or adds a new one.
+
+
+
+
+
+ Type:
+
+
+ Parameterized.
+
+
+
+
+ Parameter:
+
+
+
+ block to delete the header.
+
+
+
+ add to create the header (or append
+ the client's IP address to an already existing one).
+
+
+
+
+
+
+
+ Notes:
+
+
+ It is safe and recommended to use block.
+
+
+ Forwarding the source address of the request may make
+ sense in some multi-user setups but is also a privacy risk.
+
+
+
+
+ Example usage:
+
+
+ +change-x-forwarded-for{block}
+
+
+
+
+
+
client-header-filter
@@ -3020,6 +2980,25 @@ for details.
# Tag every request with the User-Agent header
{+client-header-tagger{user-agent}}
/
+
+# Tagging itself doesn't change the action
+# settings, sections with TAG patterns do:
+#
+# If it's a download agent, use a different forwarding proxy,
+# show the real User-Agent and make sure resume works.
+{+forward-override{forward-socks5 10.0.0.2:2222 .} \
+ -hide-if-modified-since \
+ -overwrite-last-modified \
+ -hide-user-agent \
+ -filter \
+ -deanimate-gifs \
+}
+TAG:^User-Agent: NetBSD-ftp/
+TAG:^User-Agent: Novell ZYPP Installer
+TAG:^User-Agent: RPM APT-HTTP/
+TAG:^User-Agent: fetch libfetch/
+TAG:^User-Agent: Ubuntu APT-HTTP/
+TAG:^User-Agent: MPlayer/
@@ -3916,23 +3895,23 @@ problem-host.example.com
- +filter{js-annoyances} # Get rid of particularly annoying JavaScript abuse
+ +filter{js-annoyances} # Get rid of particularly annoying JavaScript abuse.
- +filter{js-events} # Kill all JS event bindings (Radically destructive! Only for extra nasty sites)
+ +filter{js-events} # Kill all JS event bindings and timers (Radically destructive! Only for extra nasty sites).
- +filter{html-annoyances} # Get rid of particularly annoying HTML abuse
+ +filter{html-annoyances} # Get rid of particularly annoying HTML abuse.
- +filter{content-cookies} # Kill cookies that come in the HTML or JS content
+ +filter{content-cookies} # Kill cookies that come in the HTML or JS content.
- +filter{refresh-tags} # Kill automatic refresh tags (for dial-on-demand setups)
+ +filter{refresh-tags} # Kill automatic refresh tags (for dial-on-demand setups).
@@ -3944,43 +3923,43 @@ problem-host.example.com
- +filter{img-reorder} # Reorder attributes in <img> tags to make the banners-by-* filters more effective
+ +filter{img-reorder} # Reorder attributes in <img> tags to make the banners-by-* filters more effective.
- +filter{banners-by-size} # Kill banners by size
+ +filter{banners-by-size} # Kill banners by size.
- +filter{banners-by-link} # Kill banners by their links to known clicktrackers
+ +filter{banners-by-link} # Kill banners by their links to known clicktrackers.
- +filter{webbugs} # Squish WebBugs (1x1 invisible GIFs used for user tracking)
+ +filter{webbugs} # Squish WebBugs (1x1 invisible GIFs used for user tracking).
- +filter{tiny-textforms} # Extend those tiny textareas up to 40x80 and kill the hard wrap
+ +filter{tiny-textforms} # Extend those tiny textareas up to 40x80 and kill the hard wrap.
- +filter{jumping-windows} # Prevent windows from resizing and moving themselves
+ +filter{jumping-windows} # Prevent windows from resizing and moving themselves.
- +filter{frameset-borders} # Give frames a border and make them resizeable
+ +filter{frameset-borders} # Give frames a border and make them resizable.
- +filter{demoronizer} # Fix MS's non-standard use of standard charsets
+ +filter{demoronizer} # Fix MS's non-standard use of standard charsets.
- +filter{shockwave-flash} # Kill embedded Shockwave Flash objects
+ +filter{shockwave-flash} # Kill embedded Shockwave Flash objects.
- +filter{quicktime-kioskmode} # Make Quicktime movies savable
+ +filter{quicktime-kioskmode} # Make Quicktime movies saveable.
@@ -3988,35 +3967,35 @@ problem-host.example.com
- +filter{crude-parental} # Crude parental filtering (demo only)
+ +filter{crude-parental} # Crude parental filtering. Note that this filter doesn't work reliably.
- +filter{ie-exploits} # Disable a known Internet Explorer bug exploits
+ +filter{ie-exploits} # Disable some known Internet Explorer bug exploits.
- +filter{site-specifics} # Custom filters for specific site related problems
+ +filter{site-specifics} # Cure for site-specific problems. Don't apply generally!
+
+
+
+ +filter{no-ping} # Removes non-standard ping attributes in <a> and <area> tags.
- +filter{google} # Removes text ads and other Google specific improvements
+ +filter{google} # CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement.
- +filter{yahoo} # Removes text ads and other Yahoo specific improvements
+ +filter{yahoo} # CSS-based block for Yahoo text ads. Also removes a width limitation.
- +filter{msn} # Removes text ads and other MSN specific improvements
+ +filter{msn} # CSS-based block for MSN text ads. Also removes tracking URLs and a width limitation.
- +filter{blogspot} # Cleans up Blogspot blogs
-
-
-
- +filter{no-ping} # Removes non-standard ping attributes from anchor and area tags
+ +filter{blogspot} # Cleans up some Blogspot blogs. Read the fine print before using this.
@@ -4284,7 +4263,7 @@ new action
# Block all documents on example.org that end with ".js",
# but send an empty document instead of the usual HTML message.
-{+block +handle-as-empty-document}
+{+block{Blocked JavaScript} +handle-as-empty-document}
example.org/.*\.js$
@@ -4371,11 +4350,8 @@ example.org/.*\.js$
# These don't look like images, but they're banners and should be
# blocked as images:
#
-{+block +handle-as-image}
-some.nasty-banner-server.com/junk.cgi\?output=trash
-
-# Banner source! Who cares if they also have non-image content?
-ad.doubleclick.net
+{+block{Nasty banners.} +handle-as-image}
+nasty-banner-server.example.com/junk.cgi\?output=trash
@@ -4649,64 +4625,6 @@ new action
-
-
-hide-forwarded-for-headers
-
-
- Typical use:
-
- Improve privacy by not forwarding the source of the request in the HTTP headers.
-
-
-
-
- Effect:
-
-
- Deletes any existing X-Forwarded-for: HTTP header from client requests.
-
-
-
-
-
- Type:
-
-
- Boolean.
-
-
-
-
- Parameter:
-
-
- N/A
-
-
-
-
-
- Notes:
-
-
- It is safe and recommended to leave this on.
-
-
-
-
-
- Example usage:
-
-
- +hide-forwarded-for-headers
-
-
-
-
-
-
-
hide-from-header
@@ -4967,169 +4885,6 @@ new action
-
-
-inspect-jpegs
-
-
- Typical use:
-
- Try to protect against a MS buffer over-run in JPEG processing
-
-
-
-
- Effect:
-
-
- Protect against a known exploit
-
-
-
-
-
- Type:
-
-
- Boolean.
-
-
-
-
- Parameter:
-
-
- N/A
-
-
-
-
-
- Notes:
-
-
- See Microsoft Security Bulletin MS04-028. JPEG images are one of the most
- common image types found across the Internet. The exploit as described can
- allow execution of code on the target system, giving an attacker access
- to the system in question by merely planting an altered JPEG image, which
- would have no obvious indications of what lurks inside. This action
- tries to prevent this exploit if delivered through unencrypted HTTP.
-
-
- Note that the exploit mentioned is several years old
- and it's unlikely that your client is still vulnerable
- against it. This action may be removed in one of the
- next releases.
-
-
-
-
-
-
- Example usage:
-
- +inspect-jpegs
-
-
-
-
-
-
-
-
-kill-popups
-
-
-
- Typical use:
-
- Eliminate those annoying pop-up windows (deprecated)
-
-
-
-
- Effect:
-
-
- While loading the document, replace JavaScript code that opens
- pop-up windows with (syntactically neutral) dummy code on the fly.
-
-
-
-
-
- Type:
-
-
- Boolean.
-
-
-
-
- Parameter:
-
-
- N/A
-
-
-
-
-
- Notes:
-
-
- This action is basically a built-in, hardwired special-purpose filter
- action, but there are important differences: For kill-popups,
- the document need not be buffered, so it can be incrementally rendered while
- downloading. But kill-popups doesn't catch as many pop-ups as
- filter{all-popups}
- does and is not as smart as filter{unsolicited-popups}
- is.
-
-
- Think of it as a fast and efficient replacement for a filter that you
- can use if you don't want any filtering at all. Note that it doesn't make
- sense to combine it with any filter action,
- since as soon as one filter applies,
- the whole document needs to be buffered anyway, which destroys the advantage of
- the kill-popups action over its filter equivalent.
-
-
- Killing all pop-ups unconditionally is problematic. Many shops and banks rely on
- pop-ups to display forms, shopping carts etc, and the filter{unsolicited-popups}
- does a better job of catching only the unwanted ones.
-
-
- If the only kind of pop-ups that you want to kill are exit consoles (those
- really nasty windows that appear when you close an other
- one), you might want to use
- filter{js-annoyances}
- instead.
-
-
- This action is most appropriate for browsers that don't have any controls
- for unwanted pop-ups. Not recommended for general usage.
-
-
- This action doesn't work very reliable and may be removed in future releases.
-
-
-
-
-
- Example usage:
-
- +kill-popups
-
-
-
-
-
-
limit-connect
@@ -5174,10 +4929,9 @@ new action
By default, i.e. if no limit-connect action applies,
- Privoxy only allows HTTP CONNECT
- requests to port 443 (the standard, secure HTTPS port). Use
- limit-connect if more fine-grained control is desired
- for some or all destinations.
+ Privoxy allows HTTP CONNECT requests to all
+ ports. Use limit-connect if fine-grained control
+ is desired for some or all destinations.
The CONNECT methods exists in HTTP to allow access to secure websites
@@ -5190,9 +4944,6 @@ new action
Privoxy relays HTTPS traffic without seeing
the decoded content. Websites can leverage this limitation to circumvent &my-app;'s
filters. By specifying an invalid port range you can disable HTTPS entirely.
- If you plan to disable SSL by default, consider enabling
- treat-forbidden-connects-like-blocks
- as well, to be able to quickly create exceptions.
@@ -5204,7 +4955,7 @@ new action
- +limit-connect{443} # This is the default and need not be specified.
+ +limit-connect{443} # Port 443 is OK.
+limit-connect{80,443} # Ports 80 and 443 are OK.
+limit-connect{-3, 7, 20-100, 500-} # Ports less than 3, 7, 20 to 100 and above 500 are OK.
+limit-connect{-} # All ports are OK
@@ -5262,9 +5013,9 @@ new action
More and more websites send their content compressed by default, which
is generally a good idea and saves bandwidth. But the filter, deanimate-gifs
- and kill-popups actions need
- access to the uncompressed data.
+ linkend="filter">filter and
+ deanimate-gifs
+ actions need access to the uncompressed data.
When compiled with zlib support (available since &my-app; 3.0.7), content that should be
@@ -5483,6 +5234,10 @@ new action
and be aware that using your own redirects might make it
possible to fingerprint your requests.
+
+ In case of problems with your redirects, or simply to watch
+ them working, enable debug 128.
+
@@ -5503,143 +5258,24 @@ new action
# (Note the $ at the end of the URL pattern to make sure
# the request for the rewritten URL isn't redirected as well)
{+redirect{s@$@&mode=expanded@}}
-undeadly.org/cgi\?action=article&sid=\d*$
-
-
-
-
-
-
-
+undeadly.org/cgi\?action=article&sid=\d*$
-
-
-send-vanilla-wafer
+# Redirect Google search requests to MSN
+{+redirect{s@^http://[^/]*/search\?q=([^&]*).*@http://search.msn.com/results.aspx?q=$1@}}
+.google.com/search
-
-
- Typical use:
-
-
- Feed log analysis scripts with useless data.
-
-
-
+# Redirect MSN search requests to Yahoo
+{+redirect{s@^http://[^/]*/results\.aspx\?q=([^&]*).*@http://search.yahoo.com/search?p=$1@}}
+search.msn.com//results\.aspx\?q=
-
- Effect:
-
-
- Sends a cookie with each request stating that you do not accept any copyright
- on cookies sent to you, and asking the site operator not to track you.
-
-
-
-
-
- Type:
-
-
- Boolean.
-
-
-
-
- Parameter:
-
-
- N/A
-
-
-
-
-
- Notes:
-
-
- The vanilla wafer is a (relatively) unique header and could conceivably be used to track you.
-
-
- This action is rarely used and not enabled in the default configuration.
-
-
-
-
-
- Example usage:
-
-
- +send-vanilla-wafer
-
-
-
-
-
-
-
-
-
-
-send-wafer
-
-
-
- Typical use:
-
-
- Send custom cookies or feed log analysis scripts with even more useless data.
-
-
-
-
-
- Effect:
-
-
- Sends a custom, user-defined cookie with each request.
+# Redirect remote requests for this manual
+# to the local version delivered by Privoxy
+{+redirect{s@^http://www@http://config@}}
+www.privoxy.org/user-manual/
-
- Type:
-
-
- Multi-value.
-
-
-
-
- Parameter:
-
-
- A string of the form name=value.
-
-
-
-
-
- Notes:
-
-
- Being multi-valued, multiple instances of this action can apply to the same request,
- resulting in multiple cookies being sent.
-
-
- This action is rarely used and not enabled in the default configuration.
-
-
-
-
- Example usage (section):
-
-
- {+send-wafer{UsingPrivoxy=true}}
-my-internal-testing-server.void
-
-
-
@@ -6017,81 +5653,6 @@ example.org/instance-that-is-delivered-as-xml-but-is-not
-
-
-treat-forbidden-connects-like-blocks
-
-
-
- Typical use:
-
- Block forbidden connects with an easy to find error message.
-
-
-
-
- Effect:
-
-
- If this action is enabled, Privoxy no longer
- makes a difference between forbidden connects and ordinary blocks.
-
-
-
-
-
- Type:
-
-
- Boolean
-
-
-
-
- Parameter:
-
- N/A
-
-
-
-
- Notes:
-
-
- By default Privoxy answers
- forbidden Connect requests
- with a short error message inside the headers. If the browser doesn't display
- headers (most don't), you just see an empty page.
-
-
- With this action enabled, Privoxy displays
- the message that is used for ordinary blocks instead. If you decide
- to make an exception for the page in question, you can do so by
- following the See why link.
-
-
- For Connect requests the clients tell
- Privoxy which host they are interested
- in, but not which document they plan to get later. As a result, the
- Go there anyway wouldn't work and is therefore suppressed.
-
-
-
-
-
- Example usage:
-
-
- +treat-forbidden-connects-like-blocks
-
-
-
-
-
-
-
Summary
@@ -6166,15 +5727,15 @@ new action
#
+crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
-crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
- +block-as-image = +block +handle-as-image
+ +block-as-image = +block{Blocked image.} +handle-as-image
allow-all-cookies = -crunch-all-cookies -session-cookies-only -filter{content-cookies}
# These aliases define combinations of actions
# that are useful for certain types of sites:
#
- fragile = -block -filter -crunch-all-cookies -fast-redirects -hide-referrer -kill-popups -prevent-compression
+ fragile = -block -filter -crunch-all-cookies -fast-redirects -hide-referrer -prevent-compression
- shop = -crunch-all-cookies -filter{all-popups} -kill-popups
+ shop = -crunch-all-cookies -filter{all-popups}
# Short names for other aliases, for really lazy people ;-)
#
@@ -6209,7 +5770,7 @@ new action
# These shops require pop-ups:
#
- {-kill-popups -filter{all-popups} -filter{unsolicited-popups}}
+ {-filter{all-popups} -filter{unsolicited-popups}}
.dabs.com
.overclockers.co.uk
@@ -6280,14 +5841,14 @@ that also explains why and how aliases are used:
#
+crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
-crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
- +block-as-image = +block +handle-as-image
+ +block-as-image = +block{Blocked image.} +handle-as-image
mercy-for-cookies = -crunch-all-cookies -session-cookies-only -filter{content-cookies}
# These aliases define combinations of actions
# that are useful for certain types of sites:
#
- fragile = -block -filter -crunch-all-cookies -fast-redirects -hide-referrer -kill-popups
- shop = -crunch-all-cookies -filter{all-popups} -kill-popups
+ fragile = -block -filter -crunch-all-cookies -fast-redirects -hide-referrer
+ shop = -crunch-all-cookies -filter{all-popups}
@@ -6322,12 +5883,12 @@ that also explains why and how aliases are used:
# "Defaults" section:
##########################################################################
{ \
+ +change-x-forwarded-for{block} \
+deanimate-gifs \
+filter{html-annoyances} \
+filter{refresh-tags} \
+filter{webbugs} \
+filter{ie-exploits} \
- +hide-forwarded-for-headers \
+hide-from-header{block} \
+hide-referrer{forge} \
+prevent-compression \
@@ -6400,8 +5961,7 @@ mail.google.com
now. Mozilla users, who
can turn on smart handling of unwanted pop-ups in their browsers, can
safely choose
- -filter{popups} (and
- -kill-popups) above
+ -filter{popups} above
and hence don't need this section. Anyway, disabling an already disabled
action doesn't hurt, so we'll define our exceptions regardless of what was
chosen in the defaults section:
@@ -6411,7 +5971,7 @@ mail.google.com
# These sites require pop-ups too :(
#
-{ -kill-popups -filter{popups} }
+{ -filter{popups} }
.dabs.com
.overclockers.co.uk
.deutsche-bank-24.de
@@ -6514,7 +6074,7 @@ bs*.gsanet.com
##########################################################################
# Block these fine banners:
##########################################################################
-{ +block }
+{ +block{Banner ads.} }
# Generic patterns:
#
@@ -6660,14 +6220,14 @@ wiki.
+crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
-crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
allow-all-cookies = -crunch-all-cookies -session-cookies-only
- allow-popups = -filter{all-popups} -kill-popups
-+block-as-image = +block +handle-as-image
+ allow-popups = -filter{all-popups}
++block-as-image = +block{Blocked as image.} +handle-as-image
-block-as-image = -block
# These aliases define combinations of actions that are useful for
# certain types of sites:
#
-fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer -kill-popups
+fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer
shop = -crunch-all-cookies allow-popups
# Allow ads for selected useful free sites:
@@ -6731,7 +6291,7 @@ stupid-server.example.com/
seen an ad on your favourite page on example.com that you want to get rid of.
You have right-clicked the image, selected copy image location
and pasted the URL below while removing the leading http://, into a
- { +block } section. Note that { +handle-as-image
+ { +block{} } section. Note that { +handle-as-image
} need not be specified, since all URLs ending in
.gif will be tagged as images by the general rules as set
in default.action anyway:
@@ -6739,7 +6299,7 @@ stupid-server.example.com/
-{ +block }
+{ +block{Nasty ads.} }
www.example.com/nasty-ads/sponsor\.gif
another.example.net/more/junk/here/
@@ -8360,13 +7920,6 @@ Requests
actions.
-
-
- If the +kill-popups
- action applies, and it is an HTML or JavaScript document, the popup-code in the
- response is filtered on-the-fly as it is received.
-
-
If any +filter action
@@ -8484,7 +8037,8 @@ Requests
In file: default.action [ View ][ Edit ]
- {+deanimate-gifs {last}
+ {+change-x-forwarded-for{block}
+ +deanimate-gifs {last}
+fast-redirects {check-decoded-url}
+filter {refresh-tags}
+filter {img-reorder}
@@ -8492,7 +8046,6 @@ Requests
+filter {webbugs}
+filter {jumping-windows}
+filter {ie-exploits}
- +hide-forwarded-for-headers
+hide-from-header {block}
+hide-referrer {forge}
+session-cookies-only
@@ -8574,6 +8127,7 @@ In file: user.action [ View ][ Edit ][ View ][ Edit ]
+ +set-image-blocker {pattern}
@@ -8649,21 +8197,21 @@ In file: user.action [ View ][ Edit ]
- { +block }
+ { +block{Domains starts with "ad"} }
ad*.
- { +block }
+ { +block{Domain contains "ad"} }
.ad.
- { +block +handle-as-image }
+ { +block{Doubleclick banner server} +handle-as-image }
.[a-vx-z]*.doubleclick.net
We'll just show the interesting part here - the explicit matches. It is
- matched three different times. Two +block sections,
- and a +block +handle-as-image,
+ matched three different times. Two +block{} sections,
+ and a +block{} +handle-as-image,
which is the expanded form of one of our aliases that had been defined as:
+block-as-image. (Aliases are defined in
@@ -8678,7 +8226,7 @@ In file: user.action [ View ][ Edit ]ad.doubleclick.net
is done here -- as both a +block
+ linkend="BLOCK">+block{}and an
+handle-as-image.
The custom alias +block-as-image just
@@ -8699,6 +8247,7 @@ In file: user.action [ View ][ Edit ][ View ][ Edit ]
@@ -8800,7 +8343,7 @@ In file: user.action [ View ][ Edit ]
- { +block +handle-as-image }
+ { +block{Path starts with "ads".} +handle-as-image }
/ads
@@ -8916,6 +8459,99 @@ In file: user.action [ View ][ Edit ]