🔗 Feature: Internal Redirector / URL Maps
- Goal: To provide an internal URL-rewrite mechanism which can be used with ACL to replace simple redirectors.
- Status: Merged with 2-HEAD. Port to 3.1 stalled
- ETA: unknown
- Version:
- Developer: Gonzalo Arana (2.x), AmosJeffries (3.x)
- More: bug 1208
🔗 Details
Any explicit external URL-rewiter helper via url_rewrite_program overrides internal redirectors and the external helper is used instead.
🔗 Squid 2.x
The format for 3.x differs from 2.x in the directives it provides. This description covers the 2.x version in detail. The patch for 2.x has been accepted into the main code for testing and release in 2.8
Squid 2.x this feature is enabled by default.
An extra squid.conf options are made available to re-write URL without a rewriter helper.
rewrite_access acl [acl [acl ...]]
rewrite dsturl acl [acl [acl ...]]
see url_map* descriptions below for details on their operation. The names differ, but behavior remains identical.
🔗 Squid 3.x
The format for 3.x differs from 2.x in the directives it provides. This description covers the 3.x version in detail.
When squid is built with configure option:
--enable-url-maps
An extra squid.conf options are made available to re-write URL without a rewriter helper.
url_map_access acl [acl [acl ...]]
url_map dsturl acl [acl [acl ...]]
url_map_access controls whether url_maps are processed at all for a request. By default are checked against url_map list. If specified, only requests matching url_map_access ACL are further processed against each url_map.
url_map directives are processed in the order configured.
dsturl specifies the resulting URL when all acls are matched. If dsturl is “-“ the re-write does nothing. It may start with a status code sent directly to user. And contain format codes preceeded by %.
🔗 Valid status codes:
301:http://.... Means respond with a 301 to user.
302:http://.... Means respond with a 302 to user.
303:http://.... Means respond with a 303 to user.
307:http://.... Means respond with a 307 to user.
🔗 Format codes
Format code spec:
%[#][argument]formatcode
Codes:
%>a Client source IP address
%la Local IP address (http_port)
%lp Local port number (http_port)
%ts Seconds since epoch
%tu subsecond time (milliseconds, %03d)
%un User name
%ul User login
%ui User ident
%ue User from external acl
%rm Request method (GET/POST etc)
%ru Request URL
%rp Request path
%rh Request host from URL
%rH Request Host header
%rP Request protocol
%et Tag returned by external acl
%ea Log string returned by external acl
%% a literal % character
Categories: WantedFeature
Navigation: Site Search, Site Pages, Categories, 🔼 go up