FilterProxy version <% $VERSION %>

<% $MESSAGE %>
FilterProxy Global options
{filtering}?"checked":"unchecked" %>> Filtering Enabled
Upstream HTTP proxy (proxy that FilterProxy should use):
Username for upstream proxy (BASIC authentication only, NOT secure):
Password for upstream proxy (BASIC authentication only, NOT secure):
Logfile name:
{info}?"checked":"unchecked" %>> Log informational messages. (logs URL's that are transferred)
{timing}?"checked":"unchecked" %>> Log timing messages. (logs how long it takes for filters to complete -- use this info to optimize Rewrite rules)
{debug}?"checked":"unchecked" %>> Log debugging messages. (very spammy -- you probably won't need it)
Wait this many seconds before giving up on an outgoing connection
{authenable}?"checked":"unchecked" %>> Enable user authentication using passwords ( Edit users, admins, and passwords)
{localhostonly}?"checked":"unchecked" %>> Accept connections from the local machine (localhost) only. Note: after changing this option, you must re-start FilterProxy for it to take effect.
%#
% my($module); % foreach $module (@$MODULES) {
% } %#
Global configuration for modules
"><% $module %>

% my($site, $escsite, $shortsite); % foreach $site (sort keys %{$MODULECONFIG->{filters}}) { % # escape the meta-characters in the site. % $escsite = $site; % $escsite =~ s/([^a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg; % if(length $site > 60) { % $shortsite = substr($site, 0, 60) . " [...truncated...]"; % } else { % $shortsite = $site; % } % }
URL regexp Filters Applied Action
<% $shortsite %> % foreach $module (sort keys %{$MODULECONFIG->{filters}->{$site}}) { % if($module =~ /^-(.*)$/) { -(<% $1 %>) % } else { "><% $module %> % } % }


How does this work?

For every page you request with your browser, FilterProxy will compare its URL to the 'URL regexp' list above. If one (or more) match, it will apply the filters listed for that regexp. A regexp is a Regular Expression, and gory details can be found by running 'man perlre'. The basics are summarized below. These regexps are case-insensitive.

If more than one regexp matches your URL, each of the configurations is passed to the respective modules. This acts like an AND operation in that all the filters (and config for each filter) will be applied to pages matching those URL regexp's.

If you wish to have a module not be applied for a particular site, when it would be applied normally, create a URL regexp for that site, select the module you don't want applied, and click "Delete". The module will show up in the list looking like -(DeAnim) and that module will not be applied to any site that matches the corresponding URL regexp.

Note: Do NOT disable the Header module. It should be applied for all sites. Header is responsible for creating legal HTTP responses. Without it, FilterProxy will probably not conform to the HTTP/1.0 and HTTP/1.1 specifications, and will confuse your browser.

Regular Expression Overview

regexp stringWill match
.*all sites
.any single character
*causes the expression that preceeds it to be matched 0 or more times
+causes the expression that preceeds to be matched 1 or more times
?causes the expression that preceeds it to be matched 0 or 1 times
[a-z]any of the characters in the brackets will match
[^a-z]any character but those brackets will match
()Use to group expressions
http://www.somewhere.comhttp://wwwAsomewhereAcom, http://www.somewhere.com
http://www\.somewhere\.comhttp://www.somewhere.com
http://(www\.)?somewhere\.comhttp://www.somewhere.com, http://somewhere.com
http://([a-z]*)?\.somewhere\.comhttp://juniper.somewhere.com, http://www.somewhere.com, BUT NOT http://somewhere.com (note leading \.)

Hopefully you get the idea. If you need more info, consult perl's "perlre" manual page.


FilterProxy was written by Bob McElrath. Please see the README, BUGS, and any relevant module documentation before mailing me with problems.