#
# WWWOFFLE - World Wide Web Offline Explorer - Version 2.5e.
#
# WWWOFFLE Configuration file /var/spool/wwwoffle/wwwoffle.conf
#
# Derived from the example configuration file written by Andrew M. Bishop
#
# WWWOFFLE and example configuration file Copyright 1997,98,99,2000
# Andrew M. Bishop
# They may be distributed under the GNU Public License, version 2, or
# any higher version.  See section COPYING of the GNU Public license
# for conditions under which this file may be redistributed.
#


#
# Lines beginning with a '#' are comments and ignored.
#


#
# Program startup configuration.
#
# This can not be changed without restarting the program.
#
# Header : StartUp
# Options: http-port         = <integer>
#               The port number to use for the proxy http server (default=8080).
#          wwwoffle-port     = <integer>
#               The port number to use for wwwoffle control (default=8081).
#          spool-dir         = <directory name>
#               The directory to use as the spool directory
#               (default=/var/spool/wwwoffle).
#          run-uid           = <username> | <uid>
#               The username or numeric uid to run the wwwoffled server as
#               (default=none).
#          run-gid           = <groupname> | <gid>
#               The groupname or numeric gid to run the wwwoffled server as
#               (default=none).
#          use-syslog        = yes | no
#               If true then log all important messages using syslog
#               (default=yes).
#          password          = <word> | none |
#               The authorisation password for demon configuration by wwwoffle
#               (default=none).
#          max-servers       = <integer>
#               The maximum number of server processes that are ever started,
#               must be less than MAX_SERVERS (=64) (default=8).
#          max-fetch-servers = <integer>
#               The maximum number of server processes that are started to
#               fetch pages that were requested in offline mode, must be less
#               than MAX_FETCH_SERVERS (=48). (default=4).
#          dir-perm          = <octal integer>
#               The permissions to use when creating spool directories
#               (default=0755).
#          file-perm         = <octal integer>
#               The permissions to use when creating spool files (default=0644).
#          run-online        = <filename>
#               The name of a program to run when switched to online mode
#               (default=none).
#          run-offline       = <filename>
#               The name of a program to run when switched to offline mode
#               (default=none).
#          run-autodial      = <filename>
#               The name of a program to run when switched to autodial mode
#               (default=none).
#
# Notes 1: For the password to work the configuration file must be set so that
#          only authorised users can read it.
#       2: The run-uid/run-gid options are not applicable to win32 (Win95/98).
#       3: To use the run-uid/run-gid options server must be started as root.
#       4: The max-fetch-servers value must be less than max-servers or you will
#          not be able to use wwwoffle interactively online while fetching.
#       5: The dir-perm and file-perm options override the umask settings and
#          must be in octal starting with a '0' character.
#       6: The programs run using the run-online, run-offline and run-autodial
#          options are started with a single parameter set to the current mode.
#

StartUp
{
 http-port         = 8080
 wwwoffle-port     = 8081

 spool-dir         = /var/spool/wwwoffle

 run-uid           = daemon
 run-gid           = daemon

 use-syslog        = yes

 password          = none

 max-servers       = 8
 max-fetch-servers = 4

 dir-perm          = 0755
 file-perm         = 0644
}


#
# Other configuration options.
#
# Header : Options
# Options: log-level         = debug | info | important | warning | fatal
#               Log messages with this or higher priority (default=important).
#          index-latest-days = <age>
#               The age in days of pages to show in the index of latest pages
#               (default=7).
#          request-changed   = <time>
#               While online pages will only be fetched if the cached version
#               is older than this specified time in seconds (default=600).
#          request-changed-once = yes | no
#               While online pages will only be fetched if the cached version
#               has not already been fetched once this session (default=yes).
#          request-expired = yes | no
#               While online pages that have expired will always be requested
#               again (default=no). 
#          request-no-cache = yes | no
#               While online pages that ask not to be cached will always be
#               requested again (default=no).
#          pragma-no-cache   = yes | no
#               Whether to request a new copy of a page if the request from the
#               browser has 'Pragma: no-cache' (default=yes).
#          confirm-requests  = yes | no
#               Whether to return a page requiring user confirmation instead of
#               automatically recording requests made while offline
#               (default=no).
#          connect-timeout   = <time>
#               The time in seconds that WWWOFFLE will wait for the socket
#               connection (default=30).
#          socket-timeout    = <time>
#               The time in seconds that wwwoffle will wait for data before
#               giving up on a socket connection (default=120).
#          connect-retry     = yes | no
#               If a connection cannot be made to a remote server
#               then try again after a short delay (default=no).
#          ssl-allow-port    = <integer>
#               A port number that can be used for Secure Socket Layer (SSL)
#               connections, e.g. https.
#          no-lasttime-index = yes | no
#               Disables creation of the lasttime/prevtime indexes (default=no).
#          intr-download-keep = yes | no
#               If the browser closes the connection while online the currently
#               downloaded partial page should be kept (default=no).
#          intr-download-size = <integer>
#               If the browser closes the connection while online the page
#               should continue to download if smaller than this size in kB
#               (default=1).
#          intr-download-percent = <integer>
#               If the browser closes the connection while online the page
#               should continue to download if more than this amount complete
#               (default=80).
#          timeout-download-keep = yes | no
#               If the server connection timeouts while reading then the
#               currently downloaded partial page should be kept (default=no).
#
#  Notes 1: The request-changed option can be set negative to indicate that
#           cached pages are always used while online.
#        2: The request-changed-once option takes precedence over the
#           request-changed option.
#        3: The request-expired and request-no-cache options takes precedence
#           over the request-changed-once and request-changed options.
#        3: The pragma-no-cache option should be set to 'no' if when browsing
#           offline all pages are re-requested by a 'broken' browser.
#        4: The ssl-allow-port should be set to 443 to allow https, there can be
#           more than one ssl-allow-port entry for other ports as required.
#

Options
{
 log-level            = important

 index-latest-days    = 7

 request-changed      = 600

 request-changed-once = yes

 request-expired      = no

 pragma-no-cache      = yes

 confirm-requests     = no

 connect-timeout      = 30
 socket-timeout       = 120

 connect-retry        = no

 ssl-allow-port       = 443

 no-lasttime-index    = no

 intr-download-keep    = no
 intr-download-size    = 1
 intr-download-percent = 80

 timeout-download-keep = no
}


#
# Automatic Fetch options.
#
# Header : FetchOptions
# Options: stylesheets = yes | no
#               If style sheets are to be fetched.
#          images       = yes | no
#               If images are to be fetched.
#          frames       = yes | no
#               If frames are to be fetched.
#          scripts      = yes | no
#               If scripts are to be fetched.
#          objects      = yes | no
#               If objects (e.g. Java class files ) are to be fetched.
#
# Notes 1: These options all default to 'no' if nothing is specified.
#

FetchOptions
{
 stylesheets = no

 images      = yes

 frames      = yes

 scripts     = no

 objects     = no
}


#
# HTML modifications that are made to the spooled pages.
#
# Options that control how the HTML that is provided from the cache is modified.
#
# Header : ModifyHTML
# Options: enable-modify-html = yes | no
#               Enable the HTML modifications in this section (has a speed
#               penalty) (default=no).
#          add-cache-info = yes | no
#               At the bottom of all of the spooled pages the date that the page
#               was cached and some buttons are to be added (default=no).
#          anchor-cached-begin = <HTML code>
#               Anchors (links) that are cached are to have the specified HTML
#               inserted at the beginning (default="").
#          anchor-cached-end = <HTML code>
#               Anchors (links) that are cached are to have the specified HTML
#               inserted at the end (default="").
#          anchor-requested-begin  = <HTML code>
#               Anchors (links) that have been requested are to have the
#               specified HTML inserted at the beginning (default="").
#          anchor-requested-end = <HTML code>
#               Anchors (links) that have been requested are to have the
#               specified HTML inserted at the end (default="").
#          anchor-not-cached-begin = <HTML code>
#               Anchors (links) that are not cached or requested are to have the
#               specified HTML inserted at the beginning (default="").
#          anchor-not-cached-end = <HTML code>
#               Anchors (links) that are not cached or requested are to have the
#               specified HTML inserted at the end (default="").
#          disable-script = yes | no
#               Removes all scripts and scripted events (default=no).
#          disable-blink = yes | no
#               Removes the <blink> tag (default=no).
#          disable-animated-gif = yes | no
#               Disables the animation of GIF files (default=no).
#
# Notes 1: These options all rely on the HTML being syntactically correct, if it
#          is not then the result is undefined.
#

ModifyHTML
{
 enable-modify-html = yes

 add-cache-info = no

#anchor-cached-begin     = <font color="#00B000">
#anchor-cached-end       = </font>
#anchor-requested-begin  = <font color="#B0B000">
#anchor-requested-end    = </font>
#anchor-not-cached-begin = <font color="#B00000">
#anchor-not-cached-end   = </font>

 disable-script          = no
 disable-blink           = no

 disable-animated-gif    = no
}


#
# WWWOFFLE server host name specification.
#
# The possible names that the server that wwwoffles is on may be known by.
#
# Header : LocalHost
# Options: <host>
#               One of the possible hostnames or IP addresses.
#
# Notes 1: The host names must match exactly, no wildcard matches.
#       2: All entries in here are also used the same way as those in the
#          LocalNet and AllowedConnectHosts sections.
#       3: The first named host is used as the server name for several features
#          so must be a name that will work from any client host on the network.
#       4: None of the entries here or in LocalNet are fetched via a proxy.
#

LocalHost
{
 localhost
 127.0.0.1

#### Example ####
# The server is on www.foo.com, with IP address 11.22.33.44.
# www.foo.com
# 11.22.33.44
}


#
# Local Network non-cached host name specification
#
# The names of hosts that are not cached because they are on the local network.
#
# Header : LocalNet
# Options: <host>
#               A hostname or IP address.
#
# Notes 1: The host name matching uses wildcards (see the WILDCARD section).
#       2: A host can be excluded by appending a '!' to the start of the name,
#          all possible aliases and IP addresses for the host are also required.
#       3: All entries here are assumed to be reachable even when offline.
#       4: All entries in the LocalHost section are used as if they were here.
#       5: None of the entries here or in LocalHost are fetched via a proxy.
#

LocalNet
{

#### Example ####
# The local domain is foo.com so don't cache any hosts in it.
# *.foo.com
}


#
# Allowed client host name specification
#
# The names of client hosts that are allowed to connect to the server.
#
# Header : AllowedConnectHosts
# Options: <host>
#               A hostname or IP address.
#
# Notes 1: The host name matching uses wildcards (see the WILDCARD section).
#       2: A host can be excluded by appending a '!' to the start of the name,
#          all possible aliases and IP addresses for the host are also required.
#       3: All entries in the LocalHost section are used as if they were here.
#

AllowedConnectHosts
{

#### Example ####
# Only allow connections from hosts in the foo.com domain.
# *.foo.com
}


#
# Allowed client username specification
#
# A list of the users that are allowed to connect to the server.
#
# Header : AllowedConnectUsers
# Options: <username>:<password>
#               The username and password of the users that are allowed to
#               connect to the server.
#
# Notes 1: If this section is left empty then no user authentication is done.
#       2: The username and password are both stored in plaintext format.
#       3: This requires the use of browsers that handle the HTTP/1.1 standard.
#

AllowedConnectUsers
{

#### Example ####
# Only allow connections from this one user.
# andrew:password
}


#
# A list of ways of recognising a URL not to cache.
#
# Header : DontCache
# Options: URL-SPECIFICATION
#               Do not cache any URLs that match this.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION.
#       2: The URL-SPECIFICATION can be negated, see URL-SPECIFICATION below.
#       3: The URL will still be cached if fetched non-interactively.
#

DontCache
{

#### Example ####
# Don't cache any hosts in the barfoo.com domain.
# *://*.barfoo.com/
# Don't cache any gzipped or tar files.
 *://*/*.gz
 *://*/*.tar
 *://*/*.tgz
 *://*/*.Z
# Don't cache any files from /volatile in the foo.com domain.
# *://*.foo.com/volatile/*
}


#
# A list of ways of recognising a URL not to get.
#
# Header : DontGet
# Options: URL-SPECIFICATION [ = <URL> ]
#               Do not get any URLs that match this [ with the option to specify
#               a replacement URL ].
#          replacement = <URL>
#               The default URL to replace any URLs that match the
#               URL-SPECIFICATIONs instead of using the standard error message
#               (default=none).
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION.
#       2: The URL-SPECIFICATION can be negated, see URL-SPECIFICATION below.
#       3: The URL /local/images/trans-1x1.gif is a suggested replacement
#          (a 1x1 pixel transparent gif).
#

DontGet
{

#replacement = /local/images/trans-1x1.gif

#### Example ####
# Don't get from any hosts in the barfoo.com domain.
# *://*.barfoo.com/
# Don't get any gzipped or tar files.
# *://*/*.gz
# *://*/*.tar
# Don't get any files from /adverts in the foo.com domain.
# *://*.foo.com/adverts*
}


#
# A list of ways of recognising a URL not to get when fetching recursively.
#
# Header : DontGetRecursive
# Options: URL-SPECIFICATION
#               Do not get any URLs that match this.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION.
#       2: The URL-SPECIFICATION can be negated, see URL-SPECIFICATION below.
#

DontGetRecursive
{

#### Example ####
# Dont get any gzipped or tar files when getting recursively.
 *://*/*.gz
 *://*/*.tar
 *://*/*.tgz
 *://*/*.Z
}


#
# A list of URLs that cannot be requested by users when offline.
#
# Header : DontRequestOffline
# Options: URL-SPECIFICATION
#               Do not request any URLs that match this.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION.
#       2: The URL-SPECIFICATION can be negated, see URL-SPECIFICATION below.
#

DontRequestOffline
{

#### Example ####
# Dont request any URLs at all when offline.
# *://*/
}


#
# Censorship of information in HTTP headers
#
# A list of HTTP header lines that are to be removed from the requests sent or
# replies received from the servers, or fake headers to be used instead.
#
# Header : CensorHeader
# Options: <header> = <string> | none |
#               A header field name, (e.g. From, Cookie, Set-Cookie, User-Agent)
#               and the string to replace the header value with.
#          referer-self = yes | no
#               Sets the Referer header to the same as the URL (default = no).
#          referer-self-dir = yes | no
#               Sets the Referer header to the URL directory name (default = no).
#
# Notes 1: The header is case sensitive, and does not have a ':' at the end.
#       2: The value of none or no string can be used to remove the header.
#       3: This only replaces headers it finds, it does not add any new ones.
#       4: The referer-self-dir option takes precedence over referer-self.
#

CensorHeader
{

### Example ###
# Don't send the username.
# From =
# Don't accept Cookies
# Set-Cookie =
# Don't send Cookies back
# Cookie =
# Lie about the Browser type.
 User-Agent = WWWOFFLE/2.5
}


#
# Options to use when fetching files using ftp.
#
# Header : FTPOptions
# Options: anon-username = <string>
#               The username to use for anonymous ftp (default=anonymous).
#          anon-password = <string>
#               The password to use for anonymous ftp (default=<user>@<host>).
#          auth-hostname = <host[:port]>
#               A host to use a different username and password.
#          auth-username = <string>
#               The username to use on the above host.
#          auth-password = <string>
#               The password to use on the above host.
#
# Notes 1: The anon-password should be set to a sensible value especially if you
#          are behind a firewall.
#       2: The auth-hostname, auth-username and auth-password options must come
#          together as a triplet.
#       3: The auth-hostname must be exact, it is not used as a WILDCARD match.
#

FTPOptions
{
 anon-username = anonymous
#anon-password = 
}


#
# MIME Types to use when fetching files not using HTTP.
#
# Header : MIMETypes
# Options: default     = <mime-type>/<subtype>
#               The default MIME type (default=text/plain).
#          .<file-ext> = <mime-type>/<subtype>
#               The MIME type to associate with a file extension.
#
# Notes 1: You must include the '.' in the file extension.
#       2: If more than one of the extensions match then the longest is used.
#

MIMETypes
{
 default  = text/plain

 .pdf     = application/pdf
 .eps     = application/postscript
 .ps      = application/postscript
 .rtf     = application/rtf
 .dvi     = application/x-dvi
 .latex   = application/x-latex
 .tcl     = application/x-tcl
 .tex     = application/x-tex
 .texinfo = application/x-texinfo
 .texi    = application/x-texinfo
 .tr      = application/x-troff
 .man     = application/x-troff-man
 .me      = application/x-troff-me
 .ms      = application/x-troff-ms
 .zip     = application/zip
 .cpio    = application/x-cpio
 .tar     = application/x-tar
 .Z       = application/x-compress
 .gz      = application/x-gzip
 .js      = application/x-javascript
 .au      = audio/basic
 .snd     = audio/basic
 .wav     = audio/x-wav
 .gif     = image/gif
 .jpeg    = image/jpeg
 .jpg     = image/jpeg
 .tif     = image/tiff
 .tiff    = image/tiff
 .ras     = image/x-cmu-raster
 .pnm     = image/x-portable-anymap
 .pbm     = image/x-portable-bitmap
 .pgm     = image/x-portable-graymap
 .ppm     = image/x-portable-pixmap
 .png     = image/png
 .rgb     = image/x-rgb
 .xbm     = image/x-xbitmap
 .xpm     = image/x-xpixmap
 .xwd     = image/x-xwindowdump
 .html    = text/html
 .htm     = text/html
 .txt     = text/plain
 .mpeg    = video/mpeg
 .mpg     = video/mpeg
 .mov     = video/quicktime
 .avi     = video/x-msvideo
 .pac     = application/x-ns-proxy-autoconfig
 .class   = application/java
 .wrl     = model/vrml
 .vr      = model/vrml
 .css     = text/css
 .xml     = application/xml
 .dtd     = application/xml
}


#
# Remote proxy configuration.
#
# The name and port number of machines to use as proxies.
#
# Header : Proxy
# Options: default            = <hostname[:integer]> | none |
#               The hostname (+ optionally a port number separated by a colon)
#               to use as the default proxy.
#          URL-SPECIFICATION  = <hostname[:integer]> | none |
#               The hostname (+ optionally a port number separated by a colon)
#               to use as the proxy for URLs that match URL-SPECIFICATION.
#          auth-hostname = <host[:port]>
#               A proxy server that uses proxy authentication, this is where the
#               user must enter a username and password in the browser to use
#               the proxy.
#          auth-username = <string>
#               The username to use on the above host.
#          auth-password = <string>
#               The password to use on the above host.
#          ssl           = <host[:port]>
#               A proxy server that should be used for Secure Socket Layer (SSL)
#               connections e.g. https.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION.
#       2: A hostname that matches more than one entry here uses the proxy of
#          the longest matching one (protocol is included in assessing length).
#       3: Leave the hostname empty or use 'none' for no proxy.
#       4: None of the hosts in LocalNet/LocalHost will be fetched via a proxy.
#       5: The auth-hostname, auth-username and auth-password options must come
#          together as a triplet.
#       6: The auth-hostname must be exact, it is not used as a WILDCARD match.
#

Proxy
{
 http://* = none

#### Example ####
# Use www.foo.com as a default http proxy server on port 8080
# Except for the foo.com domain which has no proxy.
# http://*    = www.foo.com:8080
# *://foo.com = none
}


#
# A list of ways of recognising a URL not to display in the indexes.
#
# Header : DontIndex
# Options: outgoing = URL-SPECIFICATION
#               Do not index any URLs that match this in the outgoing index.
#          latest   = URL-SPECIFICATION
#               Do not index any URLs that match this in the
#               lasttime/prevtime/latest indexes.
#          monitor  = URL-SPECIFICATION
#               Do not index any URLs that match this in the monitor index.
#          host     = URL-SPECIFICATION
#               Do not index any URLs that match this in the host indexes.
#          URL-SPECIFICATION
#               Do not index any URLs that match this in any of the indexes.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION
#

DontIndex
{

#### Example ####
# Don't index any hosts in the barfoo.com domain.
# *://*.barfoo.com/
# Don't index any gif or jpg files in the lasttime index.
# latest = *://*/*.gif
# latest = *://*/*.jpg
}


#
# Aliases specification
#
# A list of aliases that are used to replace the server name and path with
# another server name and path.  Also for servers known by two names.
#
# Header : Alias
# Options: URL-SPECIFICATION = URL-SPECIFICATION
#               Any requests for the first URL-SPECIFICATION are replaced by the
#               second URL-SPECIFICATION.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION
#       2: The URL-SPECIFICATIONs must match exactly, no WILDCARDs are used and
#          the URL arguments are ignored.
#

Alias
{

#### Example ####
# The http server www.bar.com is mirrored locally at www.bar-mirror.foo.com
# http://www.bar.com/ = http://www.bar-mirror.foo.com/
# The wwwoffle homepage can be aliased
# http://wwwoffle/ = http://www.gedanken.demon.co.uk/wwwoffle/
  http://openbsd/ = http://www.openbsd.org/
  http://undeadly/ = http://www.undeadly.org/
}


#
# Purge method and maximum ages specification.
#
# The method to determine which pages to purge, the default age, the host
# specific maximum age of the pages in days, and the maximum cache size.
#
# Header : Purge
# Options: use-mtime          = yes | no
#               The decision of which pages to purge can be made on last access
#               time (atime) or last modification time (mtime) (default=no).
#          max-size           = <integer>
#               The maximum allowed size of the cache in MB after purging
#               (default=0).
#          min-free            = <integer>
#               The minimum amount of free disk space in MB after purging
#               (default=0).
#          use-url            = yes | no
#               If true then use the URL to decide on the purge age, otherwise
#               use the protocol and host only (default=no).
#          del-dontget        = yes | no
#               If true then delete the files from hosts that are in the DontGet
#               section (default=no).
#          del-dontcache      = yes | no
#               If true then delete the files from hosts that are in the
#               DontCache section (default=no).
#          default            = <integer>
#               The default maximum age for pages on hosts (default=14).
#          URL-SPECIFICATION  = <integer>
#               The maximum age for pages on hosts that match the
#               URL-SPECIFICATION.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION
#       2: A hostname that matches more than one entry here uses the age of the
#          longest matching one (the protocol is counted in assessing length).
#       3: A zero age means always delete on purge, negative means never purge.
#       4: A maximum cache size of 0 means there is no limit to the size.
#       5: A minimum disk free of 0 means there is no limit to the free space.
#       6: If the max-size and min-free options are both used the smaller cache
#          size is chosen.
#       7: The max-size and min-free options take into account the hosts that
#          are never purged when measuring the cache size but do not purge them.
#       8: The URL-SPECIFICATION matches only the protocol and host unless
#          use-url is set to true.
#

Purge
{
 use-mtime     = no

 max-size      = 0
 min-free      = 0

 use-url       = no

 del-dontget   = yes
 del-dontcache = yes

 default       = 28

#### Example ####
# Expire hosts in the domain foo.com at 1 week except bar.foo.com at 2 weeks.
# *://foo.com/ = 7
# *://bar.foo.com/ = 14
# Never keep anything in the domain bar.com except foo.bar.com is always kept.
# *://bar.com/ = 0
# *://foo.bar.com/ = -1
#
# Keep ftp files for 7 days and http for 14.
# ftp://* = 7
# http://* = 14
#
# Purge files to keep the cache below 10 MB
# max-size = 10
}


#
# WILDCARD
#
# A WILDCARD match is one that uses the '*' character to represent any group of
# characters.
#
# This is basically the same as the command line file matching expressions in
# DOS or the UNIX shell, except that the '*' can match the '/' character.  A
# maximum of 2 '*' characters can be used in any WILDCARD.
#
# For example
#
# *.gif      matches  foo.gif and bar.gif
# *.foo.com  matches  www.foo.com and ftp.foo.com
# /foo/*     matches  /foo/bar.html and /foo/bar/foobar.html
#


#
# URL-SPECIFICATION
#
# When specifying a host and protocol and pathname in many of the sections a
# URL-SPECIFICATION can be used, this is a way of recognising a URL.
#
# For the purposes of this explanation a URL is considered to be made up of five
# parts.
#
# proto          The protocol that is used (e.g. 'http', 'ftp')
# host           The server hostname (e.g. 'www.gedanken.demon.co.uk').
# port           The port number on the host (e.g. default of 80 for HTTP).
# path           The pathname on the host (e.g. '/bar.html') or a directory name
#                (e.g. '/foo/').
# args           Optional arguments with the URL used for CGI scripts etc.
#                (e.g. 'search=foo').
#
# For example the WWWOFFLE homepage: http://www.gedanken.demon.co.uk/wwwoffle/
# The protocol is 'http', the host is 'www.gedanken.demon.co.uk', the port is
# the default (in this case 80), and the pathname is '/wwwoffle/'.
#
# In general this is written as <proto>://<host>[:<port>]/<path>[?<args>]
#
# Where [] indicates an optional feature, and <> indicate a user supplied name
# or number.
#
# Some example URL-SPECIFICATION options are the following:
#
# *://*              Any protocol, Any host, Any port, Any path, Any args
#                    (This is that same as saying 'default').
#
# *://*/<path>       Any protocol, Any host, Any port, Named path, Any args
# 
# *://*/*.<ext>      Any protocol, Any host, Any port, Named path, Any args
# 
# *://*/*?           Any protocol, Any host, Any port, Any path, No args
# 
# *://<path>?*       Any protocol, Any host, Any port, Named path, Any args
# 
# *://<host>         Any protocol, Named host, Any port, Any path, Any args
# 
# <proto>://         Named protocol, Any host, Any port, Any path, Any args
# 
# <proto>://<host>   Named protocol, Named host, Any port, Any path, Any args
#
# <proto>://<host>:  Named protocol, Named host, Default port, Any path Any args
#
# *://<host>:<port>  Any protocol, Named host, Named port, Any path, Any args
#
# The matching of the host, the path and the args use the wildcard matching that
# is described above.
#
# 
# In some sections that accept URL-SPECIFICATIONs they can be negated by
# appending the '!' character to the start.  This will mean that the comparison
# of a URL with the URL-SPECIFICATION will return the logically opposite value
# to what would be returned without the '!'.  If all of the URL-SPECIFICATIONs
# in a section are negated and '*://*/*' is added to the end then the sense of
# the whole section is negated.
#
