Option Name:refresh_pattern
Replaces:
Requires:
Default Value:none
Suggested Config:
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	20%	4320

	usage: refresh_pattern [-i] regex min percent max [options]

	By default, regular expressions are CASE-SENSITIVE.  To make
	them case-insensitive, use the -i option.

	'Min' is the time (in minutes) an object without an explicit
	expiry time should be considered fresh. The recommended
	value is 0, any higher values may cause dynamic applications
	to be erroneously cached unless the application designer
	has taken the appropriate actions.

	'Percent' is a percentage of the objects age (time since last
	modification age) an object without explicit expiry time
	will be considered fresh.

	'Max' is an upper limit on how long objects without an explicit
	expiry time will be considered fresh.

	options: override-expire
		 override-lastmod
		 reload-into-ims
		 ignore-reload
		 ignore-no-cache
		 ignore-private
		 ignore-auth
		 stale-while-revalidate=NN
		 ignore-stale-while-revalidate
		 max-stale=NN
		 negative-ttl=NN

		override-expire enforces min age even if the server
		sent an explicit expiry time (e.g., with the
		Expires: header or Cache-Control: max-age). Doing this
		VIOLATES the HTTP standard.  Enabling this feature
		could make you liable for problems which it causes.

		Note: this does not enforce staleness - it only extends
		freshness / min. If the server returns a Expires time which
		is longer than your max time, Squid will still consider
		the object fresh for that period of time.

		override-lastmod enforces min age even on objects
		that were modified recently.

		reload-into-ims changes client no-cache or ``reload''
		to If-Modified-Since requests. Doing this VIOLATES the
		HTTP standard. Enabling this feature could make you
		liable for problems which it causes.

		ignore-reload ignores a client no-cache or ``reload''
		header. Doing this VIOLATES the HTTP standard. Enabling
		this feature could make you liable for problems which
		it causes.

		ignore-no-cache ignores any ``Pragma: no-cache'' and
		``Cache-control: no-cache'' headers received from a server.
		The HTTP RFC never allows the use of this (Pragma) header
		from a server, only a client, though plenty of servers
		send it anyway.

		ignore-private ignores any ``Cache-control: private''
		headers received from a server. Doing this VIOLATES
		the HTTP standard. Enabling this feature could make you
		liable for problems which it causes.

		ignore-auth caches responses to requests with authorization,
		as if the originserver had sent ``Cache-control: public''
		in the response header. Doing this VIOLATES the HTTP standard.
		Enabling this feature could make you liable for problems which
		it causes.

		stale-while-revalidate=NN makes Squid perform an asyncronous
		cache validation if the object isn't more stale than NN.
		Doing this VIOLATES the HTTP standard. Enabling this
		feature could make you liable for problems which it
		causes.

		ignore-stale-while-revalidate makes Squid ignore any 'Cache-Control:
		stale-while-revalidate=NN' headers received from a server. Can be
		combined with stale-while-revalidate=NN to override the server provided
		value.

		max-stale=NN provided a maximum staleness factor. Squid won't
		serve objects more stale than this even if it failed to
		validate the object.

		negative-ttl=NN overrides the global negative_ttl parameter
		selectively for URLs matching this pattern (in seconds).

	Basically a cached object is:

		FRESH if expires < now, else STALE
		STALE if age > max
		FRESH if lm-factor < percent, else STALE
		FRESH if age < min
		else STALE

	The refresh_pattern lines are checked in the order listed here.
	The first entry which matches is used.  If none of the entries
	match the default will be used.

	Note, you must uncomment all the default lines if you want
	to change one. The default setting is only active if none is
	used.

Suggested default: