<title>Actions Files</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.19 User Manual" href="index.html">
+ <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
<link rel="PREVIOUS" title="The Main Configuration File" href=
"config.html">
<link rel="NEXT" title="Filter Files" href="filter-file.html">
<table summary="Header navigation table" width="100%" border="0"
cellpadding="0" cellspacing="0">
<tr>
- <th colspan="3" align="center">Privoxy 3.0.19 User Manual</th>
+ <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
</tr>
<tr>
in <tt class="FILENAME">default.action</tt> are:</p>
<div class="TABLE">
- <a name="AEN2780" id="AEN2780"></a>
+ <a name="AEN2777" id="AEN2777"></a>
<p><b>Table 1. Default Configurations</b></p>
actions</a>.</p>
<div class="SECT2">
- <h2 class="SECT2"><a name="AEN2879" id="AEN2879">8.1. Finding the Right
+ <h2 class="SECT2"><a name="AEN2876" id="AEN2876">8.1. Finding the Right
Mix</a></h2>
<p>Note that some <a href="actions-file.html#ACTIONS">actions</a>, like
</div>
<div class="SECT2">
- <h2 class="SECT2"><a name="AEN2886" id="AEN2886">8.2. How to
+ <h2 class="SECT2"><a name="AEN2883" id="AEN2883">8.2. How to
Edit</a></h2>
<p>The easiest way to edit the actions files is with a browser by using
</div>
<div class="SECT3">
- <h3 class="SECT3"><a name="AEN2998" id="AEN2998">8.4.1. The Domain
+ <h3 class="SECT3"><a name="AEN2995" id="AEN2995">8.4.1. The Domain
Pattern</a></h3>
<p>The matching of the domain part offers some flexible options: if
</div>
<div class="SECT3">
- <h3 class="SECT3"><a name="AEN3074" id="AEN3074">8.4.2. The Path
+ <h3 class="SECT3"><a name="AEN3071" id="AEN3071">8.4.2. The Path
Pattern</a></h3>
<p><span class="APPLICATION">Privoxy</span> uses <span class=
<p>Client-header filters are executed after the other header
actions have finished and use their output as input.</p>
- <p>If the request URL gets changed, <span class=
+ <p>If the request URI gets changed, <span class=
"APPLICATION">Privoxy</span> 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
TAG:^User-Agent: Ubuntu APT-HTTP/
TAG:^User-Agent: MPlayer/
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <table border="0" bgcolor="#E0E0E0" width="90%">
+ <tr>
+ <td>
+ <pre class="SCREEN">
+# 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$
+
</pre>
</td>
</tr>
+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
+</pre>
+ </td>
+ </tr>
+ </table>
+ </dd>
+ </dl>
+ </div>
+ </div>
+
+ <div class="SECT3">
+ <h4 class="SECT3"><a name="LIMIT-COOKIE-LIFETIME" id=
+ "LIMIT-COOKIE-LIFETIME">8.5.27. limit-cookie-lifetime</a></h4>
+
+ <div class="VARIABLELIST">
+ <dl>
+ <dt>Typical use:</dt>
+
+ <dd>
+ <p>Limit the lifetime of HTTP cookies to a couple of minutes or
+ hours.</p>
+ </dd>
+
+ <dt>Effect:</dt>
+
+ <dd>
+ <p>Overwrites the expires field in Set-Cookie server headers if
+ it's above the specified limit.</p>
+ </dd>
+
+ <dt>Type:</dt>
+
+ <dd>
+ <p>Parameterized.</p>
+ </dd>
+
+ <dt>Parameter:</dt>
+
+ <dd>
+ <p>The lifetime limit in minutes, or 0.</p>
+ </dd>
+
+ <dt>Notes:</dt>
+
+ <dd>
+ <p>This action reduces the lifetime of HTTP cookies coming from
+ the server to the specified number of minutes, starting from
+ the time the cookie passes Privoxy.</p>
+
+ <p>Cookies with a lifetime below the limit are not modified.
+ The lifetime of session cookies is set to the specified
+ limit.</p>
+
+ <p>The effect of this action depends on the server.</p>
+
+ <p>In case of servers which refresh their cookies with each
+ response (or at least frequently), the lifetime limit set by
+ this action is updated as well. Thus, a session associated with
+ the cookie continues to work with this action enabled, as long
+ as a new request is made before the last limit set is
+ reached.</p>
+
+ <p>However, some servers send their cookies once, with a
+ lifetime of several years (the year 2037 is a popular choice),
+ and do not refresh them until a certain event in the future,
+ for example the user logging out. In this case this action may
+ limit the absolute lifetime of the session, even if requests
+ are made frequently.</p>
+
+ <p>If the parameter is <span class="QUOTE">"0"</span>, this
+ action behaves like <tt class="LITERAL"><a href=
+ "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a></tt>.</p>
+ </dd>
+
+ <dt>Example usages:</dt>
+
+ <dd>
+ <table border="0" bgcolor="#E0E0E0" width="90%">
+ <tr>
+ <td>
+ <pre class="SCREEN">
++limit-cookie-lifetime{60}
+
</pre>
</td>
</tr>
<div class="SECT3">
<h4 class="SECT3"><a name="PREVENT-COMPRESSION" id=
- "PREVENT-COMPRESSION">8.5.27. prevent-compression</a></h4>
+ "PREVENT-COMPRESSION">8.5.28. prevent-compression</a></h4>
<div class="VARIABLELIST">
<dl>
<div class="SECT3">
<h4 class="SECT3"><a name="OVERWRITE-LAST-MODIFIED" id=
- "OVERWRITE-LAST-MODIFIED">8.5.28. overwrite-last-modified</a></h4>
+ "OVERWRITE-LAST-MODIFIED">8.5.29. overwrite-last-modified</a></h4>
<div class="VARIABLELIST">
<dl>
</div>
<div class="SECT3">
- <h4 class="SECT3"><a name="REDIRECT" id="REDIRECT">8.5.29.
+ <h4 class="SECT3"><a name="REDIRECT" id="REDIRECT">8.5.30.
redirect</a></h4>
<div class="VARIABLELIST">
provided as parameter, or derived by applying a single pcrs
command to the original URL.</p>
+ <p>The syntax for pcrs commands is documented in the <a href=
+ "filter-file.html">filter file</a> section.</p>
+
<p>This action will be ignored if you use it together with
<tt class="LITERAL"><a href=
"actions-file.html#BLOCK">block</a></tt>. It can be combined
<div class="SECT3">
<h4 class="SECT3"><a name="SERVER-HEADER-FILTER" id=
- "SERVER-HEADER-FILTER">8.5.30. server-header-filter</a></h4>
+ "SERVER-HEADER-FILTER">8.5.31. server-header-filter</a></h4>
<div class="VARIABLELIST">
<dl>
<div class="SECT3">
<h4 class="SECT3"><a name="SERVER-HEADER-TAGGER" id=
- "SERVER-HEADER-TAGGER">8.5.31. server-header-tagger</a></h4>
+ "SERVER-HEADER-TAGGER">8.5.32. server-header-tagger</a></h4>
<div class="VARIABLELIST">
<dl>
<div class="SECT3">
<h4 class="SECT3"><a name="SESSION-COOKIES-ONLY" id=
- "SESSION-COOKIES-ONLY">8.5.32. session-cookies-only</a></h4>
+ "SESSION-COOKIES-ONLY">8.5.33. session-cookies-only</a></h4>
<div class="VARIABLELIST">
<dl>
<div class="SECT3">
<h4 class="SECT3"><a name="SET-IMAGE-BLOCKER" id=
- "SET-IMAGE-BLOCKER">8.5.33. set-image-blocker</a></h4>
+ "SET-IMAGE-BLOCKER">8.5.34. set-image-blocker</a></h4>
<div class="VARIABLELIST">
<dl>
</div>
<div class="SECT3">
- <h3 class="SECT3"><a name="AEN4706" id="AEN4706">8.5.34.
+ <h3 class="SECT3"><a name="AEN4743" id="AEN4743">8.5.35.
Summary</a></h3>
<p>Note that many of these actions have the potential to cause a page
together:</p>
<div class="SECT3">
- <h3 class="SECT3"><a name="AEN4770" id="AEN4770">8.7.1.
+ <h3 class="SECT3"><a name="AEN4807" id="AEN4807">8.7.1.
match-all.action</a></h3>
<p>Remember <span class="emphasis"><i class="EMPHASIS">all actions
</div>
<div class="SECT3">
- <h3 class="SECT3"><a name="AEN4792" id="AEN4792">8.7.2.
+ <h3 class="SECT3"><a name="AEN4829" id="AEN4829">8.7.2.
default.action</a></h3>
<p>If you aren't a developer, there's no need for you to edit the
</div>
<div class="SECT3">
- <h3 class="SECT3"><a name="AEN4905" id="AEN4905">8.7.3.
+ <h3 class="SECT3"><a name="AEN4942" id="AEN4942">8.7.3.
user.action</a></h3>
<p>So far we are painting with a broad brush by setting general