Reputation: 3183
First, let me say this: I suck at regex and htaccess. I'm trying to make a rule that will properly parse url segments into variables. So far I have this:
RewriteRule ^([^/]+)/?$ index.php?query[]=$1 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2&query[]=$3 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2&query[]=$3&query[]=$4 [QSA,L]
It works, sort of, but I feel it's longer than it needs to be; and what if I want 5 or 6 or 7 variables? Is there a more condensed way to write this out?
Also, when I spit out the query array, the first element is always index.php. What's up with that?
Upvotes: 2
Views: 952
Reputation: 1108547
Don't use RewriteRule
to convert pathinfo to query parameters, but just enable MultiViews in Apache HTTP Server and use $_SERVER['PATH_INFO']
in index.php
with little help of explode()
.
Upvotes: 1