This seems like a cool idea. While I have no use for the functionality
myself I encounter people on irc every day that could benefit from
something like this to simplify complex rewrite sets.

-- 
Rich Bowen, mobile edition
rbo...@rcbowen.com
On May 5, 2014 4:14 PM, "Jim Riggs" <apache-li...@riggs.me> wrote:

> [Posting separately to both dev and users to see if anyone on either side
> sees value in getting this committed.]
>
> About a year ago, I had an idea for a new type of RewriteMap that would
> fill an important need for a few particular use cases that we have [1].
> While we were at ApacheCon in Denver, I spent some time talking with
> JimJag, Rich, and Covener as well as updating the code from a crude proof
> of concept to something real. I would appreciate feedback from anyone,
> especially on whether or not this is something worth pursuing getting
> committed.
>
> It is a simple concept: the map is just a list of regexp patterns and
> replacements. These could be done as individual RewriteRules, obviously,
> but this rewrite map would reduce clutter in the config file, be more
> readable, and could even be externally generated/maintained without any
> httpd admin involvement. For example, an application or batch job could
> generate a map file with dozens or hundreds of entries that httpd would
> pick up without a restart/graceful, and the config might only contain a
> single RewriteRule:
>
>
> [map file]
> /foo(bar)?             /baz$1
> /(apple|banana|orange) /fruit/$1
> /post/(\d+)(/.*)?      /article/$1$2
> ...
>
>
> [config file]
> RewriteMap "regexptest" "regexp:path/to/re.map"
>
> RewriteCond "${regexptest:$1}" "^(.+)$"
> RewriteRule "^(.*)$" "%1" [R]
> ...
>
>
> Possible use cases that I can think of:
>
> 1. Redirect list (e.g. legacy site to new site) without pages of
> RewriteRules/Redirects
> 2. Simplify 100s or 1000s of rewrite rules into 1 + the map as above
> 3. "White list" of URL patterns to proxy through to backend servers (can
> be application generated; my particular use case)
> 4. Maps could be application generated, maintained in a spreadsheet or DB,
> or created with scripts/greps/etc.
>
> Just like text and hash maps, results are cached. I did some tests with up
> to 100K entries in the map, and it was still extremely responsive and
> worked flawlessly. The only thing this doesn't have is flags (e.g. NC), but
> that can be handled in the pattern itself via (?i).
>
> If interested, I would love it if some folks would try the attached patch
> and let me know what you think.
>
> - Jim
>
> [1] http://httpd.markmail.org/thread/3dheejtgwmdpxxt5
>
>
>
>
>
>

Reply via email to