Re-writing URL's with lighttpd

Posted by Tim Post on Pro Webmasters See other posts from Pro Webmasters or by Tim Post
Published on 2010-12-28T10:31:24Z Indexed on 2010/12/28 10:59 UTC
Read the original article Hit count: 380

Filed under:
|

I'm using Lighttpd to serve a GET based API that I'm working on, and I'm having some difficulty with re-writing requests.

My API calls are very simple. An example would be :

 url:/method/submethod?var1=something&var2=something&key=something

This is what I have:

url.rewrite-once = ( "^/methodfoo(.*)" => "/index.php$1&method=methodfoo")

This works fine if all methods were shallow, but I have methodfoo/submethod to deal with. What I'd like to do is use a rule that can split this up for me, appending a &submethod to the end of the rewritten string.

For instance:

url://methodfoo/submethod?foo=bar&foobar=foo

Would be re-written to:

url://index.php?foo=bar&foobar=foo&method=methodfoo&submethod=foo

Can I do that without an explicit rule for each submethod?

Additional Information:

Yes, I know I can use a rule like:

 "^/methodfoo/(.*)/(.*)" => "/index.php$2&method=methodfoo&submethod=$1"

However, That fuglifies (TM) my link structure, as it would have to match:

 url://methodfoo/submethod/?foo=bar&foobar=foo

When I really want:

 url://methodfoo/submethod?foo=bar&foobar=foo

Thanks in advance for any suggestions.

© Pro Webmasters or respective owner

Related posts about url-rewriting

Related posts about lighttpd