In addition to what phranque said about "index.php" (which may just be an artifact of cutting-and-pasting)...
What is the point of
&?
in the pattern of the RewriteCond? The two characters together just mean "optional ampersand" -- and since the pattern has no opening anchor, you can just leave off the & altogether.
Do the query elements
sid=blahblah
and
Itemid=blahblah
always come in that order, with nothing in between? It may be safer to split the two items as
RewriteCond %{QUERY_STRING} (&|^)sid=1:business-directory(&|$)
RewriteCond %{QUERY_STRING} (&|^)Itemid=0(&|$)
so they can come in either order.
When looking at query strings in a RewriteCond, your anchors should take the special forms
(&|^)
and
(&|$)
Together they delimit a single parameter, and mean "This is either the first parameter, or there's a & joining it to other parameters" and similarly "This is either the last parameter or" etcetera. The only exception is when there
must not be any other parameters; then you use the ordinary ^ and $ anchors.
:: noting irritably that I passed a nice round number when I wasn't even paying attention ::