1

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.

1

Solved with this:

url.rewrite-once = ("^/foo/(.*)([/?])(.*)" => "/index.php$2&$3&m=foo&sub=$1")

This allows links like:

/foo/bar?foo=bar

Or

/foo/bar/foobar/foo?bar=foo

Not sure if that's the best way to do it, but it does let me skip writing a rule for each sub method.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.