[ 
https://issues.apache.org/jira/browse/COUCHDB-1006?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Volker Mische updated COUCHDB-1006:
-----------------------------------

    Attachment: rewrite-replace.patch

Allow replacement of substrings.

> Ability to replace substrings in rewriter
> -----------------------------------------
>
>                 Key: COUCHDB-1006
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1006
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Database Core
>            Reporter: Volker Mische
>            Priority: Minor
>         Attachments: rewrite-replace.patch
>
>
> The current rewriter is bound to the parts of a path. Therefore I propose and 
> additional "replace" property to be able to rewrite URLs beyond that 
> limitation. One example would be subpages in a wiki, where each subpage 
> corresponds to one document in the database. Here's an example:
> Desired URL:
> http://example.com/wiki/apache-projects/couchdb/info
> URL without rewriting:
> http://example.com/wiki/apache-projects%2fcouchd%2f/info
> Another use case is when you have to deal with attachments. For example if 
> you want to build a TMS tilecache [1] bases on CouchDB. My URL would look 
> like this (where "tile" is the attachement):
> http://example.com/tilecache/3-5-2/tile
> But I'd need an URL like
> http://example.com/tilecache/tiles/3/5/2.png
> (resp. 
> http://example.com/tilecache/_design/tilecache/_rewrite/tiles/6/9/9.png)
> My modification to the rewriter allows you to replace substrings with other 
> ones. Here's the rewriter rule for this example:
> {
>     "from" : "/tiles/<x>/<y>/<z>.png",
>     "to" : "..\\/..\\/:x/:y/:z/tile",
>     "replace": {
>         "old": "/",
>         "new": "-",
>         "limit": -1
>     }
> }
> It replaces all occurences of "/" with "-" on the "to"-path. Two slashes 
> ("\\") escape a character, so it won't be replaced. The "limit" parameter 
> specifies how many occurences should be replaced. It could be either 
> positive, then it will just count how often a string was already replaced and 
> stop at the limit. If "limit" is negative, it will count from the back. This 
> is especially useful if you want to replace slashes and know how many slashes 
> the attachment has, but not how many the document has.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to