Rewrite for an empty query string Rewrite for an empty query string apache apache

Rewrite for an empty query string


I figured it out. This seems to do the trick pretty well:

RewriteCond %{QUERY_STRING} ^$RewriteRule ^/$ /index.home.html

Of course, if there's a better way, I'd love to hear it.


i know this ones pretty old, but better alternative is:

RewriteCond %{QUERY_STRING} -nRewriteRule ^/$ /index.home.html


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.

RewriteEngine onRewriteCond %{QUERY_STRING} ^$RewriteRule ^/?file.html$ /file2.html? [L,R]

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

RewriteCond %{QUERY_STRING} ^$RewriteRule ^/?file.html$ /file2.html [L,R,QSD]

The QSD flag don't keep the query string if there is one.