I am trying to write a rewrite rule to change path slugs to query parameters. It is for a web service, and should only rewrite this rule if the host starts with api. There are two slugs that I am trying to capture and rewrite. The first is optional and is a version (i.e. v1.2) and the second is the service domain (i.e. customers, transactions, etc.).
http://api.domain.com/v2.5/customers should rewrite to ?version=2.5&domain=customers
I also want to support a default version so that
http://api.domain.com/customers should rewrite to ?version=&domain=customers
Here is what my .htaccess file looks like:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^api\..*
RewriteRule ^v([\d\.]*)?\/?([^\/]*)$ ?version=$1&domain=$2
The first example above works fine, but I can’t get the default version path to work. I have tried a ton of different things. I thought starting with ^.*v would help, but it didn’t. Anybody know how to make it match when you don’t know the starting characters?
Try:
This makes the
/vpart optional:/v2.5/foo->/?version=2.5&domain=foo/foo->/?version=&domain=foo/v/foo->/?version=&domain=foo