{ +handle-as-image +block{Banner ads.} }
# Block these as if they were images. Send no block page.
- banners.example.com
- media.example.com/.*banners
- .example.com/images/ads/
The port part of a pattern is a decimal port number preceded by a colon (:). If the
host part contains a numerical IPv6 address, it has to be put into angle brackets (<,
@@ -363,7 +363,7 @@
Additionally, there are wild-cards that you can use in the domain names themselves. These work similarly to
shell globbing type wild-cards: "*" represents zero or more arbitrary characters
- (this is equivalent to the "Regular Expression" based syntax of ".*"),
"?" represents any single character (this is equivalent to the regular expression
syntax of a simple "."), and you can define "character
@@ -401,7 +401,7 @@
There is an Appendix with a brief quick-start into regular expressions,
you also might want to have a look at your operating system's documentation on regular expressions (try
@@ -526,17 +526,17 @@
-
# If the admin defined the client-specific-tag circumvent-blocks,
-# and the request comes from a client that previously requested
-# the tag to be set, overrule all previous +block actions that
-# are enabled based on URL to CLIENT-TAG patterns.
-{-block}
-CLIENT-TAG:^circumvent-blocks$
+
# If the admin defined the client-specific-tag circumvent-blocks,
+ # and the request comes from a client that previously requested
+ # the tag to be set, overrule all previous +block actions that
+ # are enabled based on URL to CLIENT-TAG patterns.
+ {-block}
+ CLIENT-TAG:^circumvent-blocks$
-# This section is not overruled because it's located after
-# the previous one.
-{+block{Nobody is supposed to request this.}}
-example.org/blocked-example-page
+ # This section is not overruled because it's located after
+ # the previous one.
+ {+block{Nobody is supposed to request this.}}
+ example.org/blocked-example-page
@@ -603,7 +603,7 @@ example.org/blocked-example-page
-name{param} # remove the parameter param from the list of parameters
- # If it was the last one left, disable the action.
+ # If it was the last one left, disable the action.
-name # disable this action completely and remove all parameters from the list
@@ -658,16 +658,16 @@ example.org/blocked-example-page
-
# Add a DNT ("Do not track") header to all requests,
-# event to those that already have one.
-#
-# This is just an example, not a recommendation.
-#
-# There is no reason to believe that user-tracking websites care
-# about the DNT header and depending on the User-Agent, adding the
-# header may make user-tracking easier.
-{+add-header{DNT: 1}}
-/
+
# Add a DNT ("Do not track") header to all requests,
+ # event to those that already have one.
+ #
+ # This is just an example, not a recommendation.
+ #
+ # There is no reason to believe that user-tracking websites care
+ # about the DNT header and depending on the User-Agent, adding the
+ # header may make user-tracking easier.
+ {+add-header{DNT: 1}}
+ /
If the request URI gets changed, Privoxy will detect that and use the
new one. This can be used to rewrite the request destination behind the client's back, for example to
specify a Tor exit relay for certain requests.
+
Note that to change the destination host for https-inspected requests a protocol and host has to be added to
+ the URI.
+
If https inspection is enabled, the protocol can be
+ downgraded from https to http but upgrading a request from http to https is currently not supported.
+
After detecting a rewrite, Privoxy does not update the actions used
+ for the request based on the new host.
Please refer to the filter file chapter to learn which client-header
filters are available by default, and how to create your own.
All request bodies to which this action applies are filtered on-the-fly through the specified regular
+ expression based substitutions.
+
+
Type:
+
+
Multi-value.
+
+
Parameter:
+
+
The name of a client-body filter, as defined in one of the filter
+ files.
+
+
Notes:
+
+
Please refer to the filter file chapter to learn how to create your own
+ client-body filters.
+
The distribution default.filter file contains a selection of client-body
+ filters for example purposes.
+
The amount of data that can be filtered is limited by the buffer-limit option in the main config
+ file. The default is 4096 KB (4 Megs). Once this limit is exceeded, the whole request body is passed
+ through unfiltered.
+
+
Example usage (section):
+
+
+
+
+
# Remove "test" everywhere in the request body
+ {+client-body-filter{remove-test}}
+ /
Block requests based on the content of the body data.
+
+
Effect:
+
+
Client request bodies to which this action applies are filtered on-the-fly through the specified
+ regular expression based substitutions, the result is used as tag.
+
+
Type:
+
+
Multi-value.
+
+
Parameter:
+
+
The name of a client-body tagger, as defined in one of the filter
+ files.
+
+
Notes:
+
+
Please refer to the filter file chapter to learn how to create your own
+ client-body tagger.
+
Client-body taggers are applied to each request body on its own, and as the body isn't modified, each
+ tagger "sees" the original.
+
Chunk-encoded request bodies currently can't be tagged. Request bodies larger than the buffer-limit
+ can't be tagged either.
+
+
Example usage (section):
+
+
+
+
+
# Apply blafasel tagger.
+ {+client-body-tagger{blafasel}}
+ /
+
+ # Block request based on the tag created by the blafasel tagger.
+ {+block{Request body contains blafasel}}
+ TAG:^content contains blafasel$
# Tag every request with the User-Agent header
-{+client-header-tagger{user-agent}}
-/
+
# 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/
+ # 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/
-
# Tag all requests with the Range header set
-{+client-header-tagger{range-requests}}
-/
+
# Tag all requests with the Range header set
+ {+client-header-tagger{range-requests}}
+ /
-# Disable filtering for the tagged requests.
-#
-# With filtering enabled Privoxy would remove the Range headers
-# to be able to filter the whole response. The downside is that
-# it prevents clients from resuming downloads or skipping over
-# parts of multimedia files.
-{-filter -deanimate-gifs}
-TAG:^RANGE-REQUEST$
+ # Disable filtering for the tagged requests.
+ #
+ # With filtering enabled Privoxy would remove the Range headers
+ # to be able to filter the whole response. The downside is that
+ # it prevents clients from resuming downloads or skipping over
+ # parts of multimedia files.
+ {-filter -deanimate-gifs}
+ TAG:^RANGE-REQUEST$
-
# Tag all requests with the client IP address
-#
-# (Technically the client IP address isn't included in the
-# client headers but client-header taggers can set it anyway.
-# For details see the tagger in default.filter)
-{+client-header-tagger{client-ip-address}}
-/
+
# Tag all requests with the client IP address
+ #
+ # (Technically the client IP address isn't included in the
+ # client headers but client-header taggers can set it anyway.
+ # For details see the tagger in default.filter)
+ {+client-header-tagger{client-ip-address}}
+ /
-# Change forwarding settings for requests coming from address 10.0.0.1
-{+forward-override{forward-socks5 127.0.1.2:2222 .}}
-TAG:^IP-ADDRESS: 10\.0\.0\.1$
+ # Change forwarding settings for requests coming from address 10.0.0.1
+ {+forward-override{forward-socks5 127.0.1.2:2222 .}}
+ TAG:^IP-ADDRESS: 10\.0\.0\.1$
# Check if www.example.net/ really uses valid XHTML
+ { +content-type-overwrite{application/xml} }
+ www.example.net/
-# but leave the content type unmodified if the URL looks like a style sheet
-{-content-type-overwrite}
-www.example.net/.*\.css$
-www.example.net/.*style
+ # but leave the content type unmodified if the URL looks like a style sheet
+ {-content-type-overwrite}
+ www.example.net/.*\.css$
+ www.example.net/.*style
# Let the browser revalidate cached documents but don't
-# allow the server to use the revalidation headers for user tracking.
-{+hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/
+
# Let the browser revalidate cached documents but don't
+ # allow the server to use the revalidation headers for user tracking.
+ {+hide-if-modified-since{-60} \
+ +overwrite-last-modified{randomize} \
+ +crunch-if-none-match}
+ /
@@ -1587,11 +1693,11 @@ problem-host.example.com
completely rendered doesn't change much, but it may be perceived as slower since the page is not
incrementally displayed.) This effect will be more noticeable on slower connections.
"Rolling your own" filters requires a knowledge of "Regular
- Expressions" and "Regular
+ Expressions" and "HTML". This is very powerful feature, and potentially very intrusive. Filters should
be used with caution, and where an equivalent "action" is not available.
# Use an ssh tunnel for requests previously tagged as
-# "User-Agent: fetch libfetch/2.0" and make sure
-# resuming downloads continues to work.
-#
-# This way you can continue to use Tor for your normal browsing,
-# without overloading the Tor network with your FreeBSD ports updates
-# or downloads of bigger files like ISOs.
-#
-# Note that HTTP headers are easy to fake and therefore their
-# values are as (un)trustworthy as your clients and users.
-{+forward-override{forward-socks5 10.0.0.2:2222 .} \
- -hide-if-modified-since \
- -overwrite-last-modified \
-}
-TAG:^User-Agent: fetch libfetch/2\.0$
+
# Use an ssh tunnel for requests previously tagged as
+ # "User-Agent: fetch libfetch/2.0" and make sure
+ # resuming downloads continues to work.
+ #
+ # This way you can continue to use Tor for your normal browsing,
+ # without overloading the Tor network with your FreeBSD ports updates
+ # or downloads of bigger files like ISOs.
+ #
+ # Note that HTTP headers are easy to fake and therefore their
+ # values are as (un)trustworthy as your clients and users.
+ {+forward-override{forward-socks5 10.0.0.2:2222 .} \
+ -hide-if-modified-since \
+ -overwrite-last-modified \
+ }
+ TAG:^User-Agent: fetch libfetch/2\.0$
# Block all documents on example.org that end with ".js",
-# but send an empty document instead of the usual HTML message.
-{+block{Blocked JavaScript} +handle-as-empty-document}
-example.org/.*\.js$
+
# Block all documents on example.org that end with ".js",
+ # but send an empty document instead of the usual HTML message.
+ {+block{Blocked JavaScript} +handle-as-empty-document}
+ example.org/.*\.js$
# Generic image extensions:
+ #
+ {+handle-as-image}
+ /.*\.(gif|jpg|jpeg|png|bmp|ico)$
-# These don't look like images, but they're banners and should be
-# blocked as images:
-#
-{+block{Nasty banners.} +handle-as-image}
-nasty-banner-server.example.com/junk.cgi\?output=trash
+ # These don't look like images, but they're banners and should be
+ # blocked as images:
+ #
+ {+block{Nasty banners.} +handle-as-image}
+ nasty-banner-server.example.com/junk.cgi\?output=trash
# Let the browser revalidate but make tracking based on the time less likely.
-{+hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/
+
# Let the browser revalidate but make tracking based on the time less likely.
+ {+hide-if-modified-since{-60} \
+ +overwrite-last-modified{randomize} \
+ +crunch-if-none-match}
+ /
@@ -2485,7 +2627,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
occasionally useful to forge this in order to access sites that won't let you in otherwise (though there
may be a good reason in some cases).
This action allows Privoxy to filter encrypted requests and
- responses. For this to work Privoxy has to generate a certificate and
- send it to the client which has to accept it.
+ responses. For this to work Privoxy has to generate a certificate for
+ the web site and send it to the client which has to accept it.
Before this works the directives in the HTTPS inspection section of the config
file have to be configured.
+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
-+limit-connect{,} # No HTTPS/SSL traffic is allowed
+
+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
+ +limit-connect{,} # No HTTPS/SSL traffic is allowed
# Selectively turn off compression, and enable a filter
-#
-{ +filter{tiny-textforms} +prevent-compression }
-# Match only these sites
- .google.
- sourceforge.net
- sf.net
+
# Selectively turn off compression, and enable a filter
+ #
+ { +filter{tiny-textforms} +prevent-compression }
+ # Match only these sites
+ .google.
+ sourceforge.net
+ sf.net
-# Or instead, we could set a universal default:
-#
-{ +prevent-compression }
- / # Match all sites
+ # Or instead, we could set a universal default:
+ #
+ { +prevent-compression }
+ / # Match all sites
-# Then maybe make exceptions for broken sites:
-#
-{ -prevent-compression }
-.compusa.com/
+ # Then maybe make exceptions for broken sites:
+ #
+ { -prevent-compression }
+ .compusa.com/
# Let the browser revalidate without being tracked across sessions
-{ +hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/
+
# Let the browser revalidate without being tracked across sessions
+ { +hide-if-modified-since{-60} \
+ +overwrite-last-modified{randomize} \
+ +crunch-if-none-match \
+ }
+ /
# Replace example.com's style sheet with another one
-{ +redirect{http://localhost/css-replacements/example.com.css} }
- example.com/stylesheet\.css
+
# Replace example.com's style sheet with another one
+ { +redirect{http://localhost/css-replacements/example.com.css} }
+ example.com/stylesheet\.css
-# Create a short, easy to remember nickname for a favorite site
-# (relies on the browser to accept and forward invalid URLs to Privoxy)
-{ +redirect{https://www.privoxy.org/user-manual/actions-file.html} }
- a
+ # Create a short, easy to remember nickname for a favorite site
+ # (relies on the browser to accept and forward invalid URLs to Privoxy)
+ { +redirect{https://www.privoxy.org/user-manual/actions-file.html} }
+ a
-# Always use the expanded view for Undeadly.org articles
-# (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*$
+ # Always use the expanded view for Undeadly.org articles
+ # (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*$
-# Redirect Google search requests to MSN
-{+redirect{s@^http://[^/]*/search\?q=([^&]*).*@http://search.msn.com/results.aspx?q=$1@}}
-.google.com/search
+ # Redirect Google search requests to MSN
+ {+redirect{s@^http://[^/]*/search\?q=([^&]*).*@http://search.msn.com/results.aspx?q=$1@}}
+ .google.com/search
-# 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=
+ # 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=
-# Redirect http://example.com/&bla=fasel&toChange=foo (and any other value but "bar")
-# to http://example.com/&bla=fasel&toChange=bar
-#
-# The URL pattern makes sure that the following request isn't redirected again.
-{+redirect{s@toChange=[^&]+@toChange=bar@}}
-example.com/.*toChange=(?!bar)
+ # Redirect http://example.com/&bla=fasel&toChange=foo (and any other value but "bar")
+ # to http://example.com/&bla=fasel&toChange=bar
+ #
+ # The URL pattern makes sure that the following request isn't redirected again.
+ {+redirect{s@toChange=[^&]+@toChange=bar@}}
+ example.com/.*toChange=(?!bar)
-# Add a shortcut to look up illumos bugs
-{+redirect{s@^http://i([0-9]+)/.*@https://www.illumos.org/issues/$1@}}
-# Redirected URL = http://i4974/
-# Redirect Destination = https://www.illumos.org/issues/4974
-i[0-9][0-9][0-9][0-9]*/
+ # Add a shortcut to look up illumos bugs
+ {+redirect{s@^http://i([0-9]+)/.*@https://www.illumos.org/issues/$1@}}
+ # Redirected URL = http://i4974/
+ # Redirect Destination = https://www.illumos.org/issues/4974
+ i[0-9][0-9][0-9][0-9]*/
-# Redirect requests for the old Tor Hidden Service of the Privoxy website to the new one
-{+redirect{s@^http://jvauzb4sb3bwlsnc.onion/@http://l3tczdiiwoo63iwxty4lhs6p7eaxop5micbn7vbliydgv63x5zrrrfyd.onion/@}}
-jvauzb4sb3bwlsnc.onion/
+ # Redirect requests for the old Tor Hidden Service of the Privoxy website to the new one
+ {+redirect{s@^http://jvauzb4sb3bwlsnc.onion/@http://l3tczdiiwoo63iwxty4lhs6p7eaxop5micbn7vbliydgv63x5zrrrfyd.onion/@}}
+ jvauzb4sb3bwlsnc.onion/
-# Redirect remote requests for this manual
-# to the local version delivered by Privoxy
-{+redirect{s@^http://www@http://config@}}
-www.privoxy.org/user-manual/
+ # Redirect remote requests for this manual
+ # to the local version delivered by Privoxy
+ {+redirect{s@^http://www@http://config@}}
+ www.privoxy.org/user-manual/
# Tag every request with the content type declared by the server
-{+server-header-tagger{content-type}}
-/
+
# Tag every request with the content type declared by the server
+ {+server-header-tagger{content-type}}
+ /
-# If the response has a tag starting with 'image/' enable an external
-# filter that only applies to images.
-#
-# Note that the filter is not available by default, it's just a
-# silly example.
-{+external-filter{rotate-image} +force-text-mode}
-TAG:^image/
+ # If the response has a tag starting with 'image/' enable an external
+ # filter that only applies to images.
+ #
+ # Note that the filter is not available by default, it's just a
+ # silly example.
+ {+external-filter{rotate-image} +force-text-mode}
+ TAG:^image/
Server or client tags to which this action applies are not added to the request, thus making all
+ actions that are specific to these request tags inactive.
+
+
Type:
+
+
Multi-value.
+
+
Parameter:
+
+
The result tag of a server-header or client-header tagger, as defined in one of the filter files.
+
+
Example usage (section):
+
+
+
+
+
# Suppress tag produced by range-requests client-header tagger for requests coming from address 10.0.0.1
+ {+suppress-tag{RANGE-REQUEST}}
+ TAG:^IP-ADDRESS: 10\.0\.0\.1$
Note that many of these actions have the potential to cause a page to misbehave, possibly even not to
display at all. There are many ways a site designer may choose to design his site, and what HTTP header
content, and other criteria, he may depend on. There is no way to have hard and fast rules for all sites. See
@@ -3224,40 +3405,40 @@ TAG:^image/
-
# Useful custom aliases we can use later.
- #
- # Note the (required!) section header line and that this section
- # must be at the top of the actions file!
- #
- {{alias}}
+
+ # Short names for other aliases, for really lazy people ;-)
+ #
+ c0 = +crunch-all-cookies
+ c1 = -crunch-all-cookies
@@ -3266,26 +3447,26 @@ TAG:^image/
-
# These sites are either very complex or very keen on
- # user data and require minimal interference to work:
- #
- {fragile}
- .office.microsoft.com
- .windowsupdate.microsoft.com
- # Gmail is really mail.google.com, not gmail.com
- mail.google.com
+
# These sites are either very complex or very keen on
+ # user data and require minimal interference to work:
+ #
+ {fragile}
+ .office.microsoft.com
+ .windowsupdate.microsoft.com
+ # Gmail is really mail.google.com, not gmail.com
+ mail.google.com
- # Shopping sites:
- # Allow cookies (for setting and retrieving your customer data)
- #
- {shop}
- .quietpc.com
- .worldpay.com # for quietpc.com
- mybank.example.com
+ # Shopping sites:
+ # Allow cookies (for setting and retrieving your customer data)
+ #
+ {shop}
+ .quietpc.com
+ .worldpay.com # for quietpc.com
+ mybank.example.com
- # These shops require pop-ups:
- #
- {-filter{all-popups} -filter{unsolicited-popups}}
+ # These shops require pop-ups:
+ #
+ {-filter{all-popups} -filter{unsolicited-popups}}
.dabs.com
.overclockers.co.uk
##########################################################################
-# Exceptions for sites that'll break under the default action set:
-##########################################################################
+
##########################################################################
+ # Exceptions for sites that'll break under the default action set:
+ ##########################################################################
-# "Fragile" Use a minimum set of actions for these sites (see alias above):
-#
-{ fragile }
-.office.microsoft.com # surprise, surprise!
-.windowsupdate.microsoft.com
-mail.google.com
+ # "Fragile" Use a minimum set of actions for these sites (see alias above):
+ #
+ { fragile }
+ .office.microsoft.com # surprise, surprise!
+ .windowsupdate.microsoft.com
+ mail.google.com
##########################################################################
+ # Images:
+ ##########################################################################
-# Define which file types will be treated as images, in case they get
-# blocked further down this file:
-#
-{ +handle-as-image }
-/.*\.(gif|jpe?g|png|bmp|ico)$
+ # Define which file types will be treated as images, in case they get
+ # blocked further down this file:
+ #
+ { +handle-as-image }
+ /.*\.(gif|jpe?g|png|bmp|ico)$
@@ -3471,16 +3652,16 @@ edit.*.yahoo.com
-
# Known ad generators:
-#
-{ +block-as-image }
-ar.atwola.com
-.ad.doubleclick.net
-.ad.*.doubleclick.net
-.a.yimg.com/(?:(?!/i/).)*$
-.a[0-9].yimg.com/(?:(?!/i/).)*$
-bs*.gsanet.com
-.qkimg.net
##########################################################################
-# Save some innocent victims of the above generic block patterns:
-##########################################################################
+
##########################################################################
+ # Save some innocent victims of the above generic block patterns:
+ ##########################################################################
-# By domain:
-#
-{ -block }
-adv[io]*. # (for advogato.org and advice.*)
-adsl. # (has nothing to do with ads)
-adobe. # (has nothing to do with ads either)
-ad[ud]*. # (adult.* and add.*)
-.edu # (universities don't host banners (yet!))
-.*loads. # (downloads, uploads etc)
+ # By domain:
+ #
+ { -block }
+ adv[io]*. # (for advogato.org and advice.*)
+ adsl. # (has nothing to do with ads)
+ adobe. # (has nothing to do with ads either)
+ ad[ud]*. # (adult.* and add.*)
+ .edu # (universities don't host banners (yet!))
+ .*loads. # (downloads, uploads etc)
-# By path:
-#
-/.*loads/
+ # By path:
+ #
+ /.*loads/
-# Site-specific:
-#
-www.globalintersec.com/adv # (adv = advanced)
-www.ugu.com/sui/ugu/adv
# Aliases are local to the file they are defined in.
-# (Re-)define aliases for this file:
-#
-{{alias}}
-#
-# These aliases just save typing later, and the alias names should
-# be self explanatory.
-#
-+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}
-+block-as-image = +block{Blocked as image.} +handle-as-image
--block-as-image = -block
+
# Aliases are local to the file they are defined in.
+ # (Re-)define aliases for this file:
+ #
+ {{alias}}
+ #
+ # These aliases just save typing later, and the alias names should
+ # be self explanatory.
+ #
+ +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}
+ +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
-shop = -crunch-all-cookies allow-popups
+ # These aliases define combinations of actions that are useful for
+ # certain types of sites:
+ #
+ fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer
+ shop = -crunch-all-cookies allow-popups
-# Allow ads for selected useful free sites:
-#
-allow-ads = -block -filter{banners-by-size} -filter{banners-by-link}
+ # Allow ads for selected useful free sites:
+ #
+ allow-ads = -block -filter{banners-by-size} -filter{banners-by-link}
-# Alias for specific file types that are text, but might have conflicting
-# MIME types. We want the browser to force these to be text documents.
-handle-as-text = -filter +-filter +-content-type-overwrite{text/plain} +-force-text-mode -hide-content-disposition