I'm building in some caching to one of my sites, and I can't seem to find if there's a way to add a condition with mod_rewrite to apply only if the query string on a request is empty.
For example, I'd love to know if I can have a request with no query string like
http://www.example.com/
load the page at
http://www.example.com/index.home.html
But any request with a query string, such as
http://www.example.com/?id=32
to load normally and not be affected by the rewrite.
What am I missing?
i know this ones pretty old, but better alternative is:
To match against empty QueryString , we use ^$ in our Condition Pattern. The following rule redirects /file.html to /file2.html but it fails to redirect /file.html?querystring because of the condition.
An empty question mark at the end of the Rule is important as it discards the old querystring otherwise the redirected url will look like /file2.html?querystring .
Or alternatively: RewriteEngine on
The QSD flag don't keep the query string if there is one.
I figured it out. This seems to do the trick pretty well:
Of course, if there's a better way, I'd love to hear it.