Take the 2-minute tour ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

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.

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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