I'd say on looking at it that it is the right way. It treats each query string as a separate entity in the conditions, which makes perfect sense. I was expecting to see more wildcard variables, but needless, if it works, it works, and you can put this puppy to bed. If you aren't getting 500 errors, then you have no more need to think on this. Glad you found a solution, and thanks for posting it here.