Feature #443
closed[PATCH] mod_redirect: Add support for url-encoding backreferences, map %%n->%n, $$n->$n
Description
Attached is a simple user-contributed (e.g. no guarantees) patch to expand the capabilities of mod_redirect for lighttpd 1.4.8.
It adds two features:
- optional url-encoding for backreferences
- allow backreference character usage without substituting a backref.
Here is an example of the first case:
Let's say that you want to map the specified URL into a CGI argument, but you want it to be escaped properly --
url.redirect = ( "^(.*)$" => "/view?path=$!1"
If a user requests "http://example.com/special/documents?foo=bar", they will be redirected to "http://example.com/view?path=%2Fspecial%2Fdocuments%3Ffoo%3Dbar".
Now let's say you want to include an absolute address so that the user is redirected to a different site, http://2.example.com. You would want the redirection to result in the following URL: "http://example.com/view?path=http%3A%2F%2F2.example.com%2Fspecial%2Fdocuments%3Ffoo%3Dbar".
The second change allows you to do this with mod_redirect:
url.redirect = ( "^(.*)$" => "http%%3A%%2F%%2F2.example.com/view?path=$!1"
Using double percents, mod_redirect will no longer assume that the %3 in %%3A is a poor backreference and it will print out the desired single %.
--
Doh - it looks like I need to attach after I file the ticket. If I have a problem with it, I will put it on the wiki as an attachment.
-- will
Files
Updated by moo over 18 years ago
- Status changed from New to Assigned
assign to me. applies to mod_rewrite too. anyone else have another character against the '!' ?
Updated by moo about 17 years ago
cannot be done in 1.4.x unless r1094 is merged back to browser:branches1.4.x, need discussion for 1.5
Updated by Anonymous almost 17 years ago
This site could really benefit from some, any, spam prevention.
Updated by gstrauss over 8 years ago
- Related to Bug #911: Need for URL encoding in mod_redirect and possibly mod_rewrite added
Updated by gstrauss over 6 years ago
- Description updated (diff)
- Status changed from Assigned to Patch Pending
- Target version set to 1.4.50
Updated by gstrauss over 6 years ago
- Status changed from Patch Pending to Fixed
- % Done changed from 0 to 100
Applied in changeset 255269d799185186bda64c04bf7a2efeeffbb8d6.
Updated by gstrauss over 6 years ago
Documentation for url-encoding backreferences can be found on mod_rewrite in section Extended Replacement Patterns
Also available in: Atom