Webmasters Stack Exchange is a question and answer site for pro webmasters. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm having some trouble with redirects and I haven't been able to get this to work. I want to make the following


redirect to


I was wondering if someone could help me with the rewrite rule so the query string doesn't appear in the redirected URL. I'm using .htaccess with a Magento platform site.

share|improve this question

By default the query string on the requested URL is appended to the rewritten/redirected URL. The easiest way to remove the query string from the redirected URL is to simply append a ? at the end of the RewriteRule substitution. This essentially writes a blank query string (the ? does not actually become part of the rewritten URL).

So, from your example:

RewriteEngine On
RewriteCond %{QUERY_STRING} =p=15
RewriteRule ^seasonal/christmas$ /holiday-decor/christmas.html? [R=301,L]

The RewriteCond directive is required in order to match the query string part of the requested URL. The URL matched against the RewriteRule pattern does not include the query string. The = prefix on the CondPattern =p=15 indicates a a literal "string" match, so it matches p=15 exactly.

share|improve this answer

Try adding this to your .htaccess in the document root:

RewriteEngine On   
RewriteCond %{QUERY_STRING} ^(.*)&?start=0(.*)$  
RewriteRule ^/?products\.php$ /products.php?%1%2 [R=301,NE]
share|improve this answer
This does not answer the question or even work with the OPs example?! This particular example is intended to remove a particular segment (name/value pair) from a query string, whilst maintaining the rest of it. – w3dk Mar 20 '15 at 23:44

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.