title: RewriteRule returns HTTP 200 when it should be HTTP 301
body: <p>The following <code>RewriteRule</code> forwards traffic from a url <code>shows.php?id=review-1</code> to a server-side controller file which creates an SEO friendly URL and further redirects using a 301 redirect. Using <code>CURL</code>, The redirect to the controller file shows as a 200, a direct link to the controller file shows a 301.</p>
  
  <p>Here's my <code>RewriteRule</code>:</p>
  
  <pre><code>RewriteCond %{THE_REQUEST} ^GET\s/shows\.php\?
  RewriteCond %{QUERY_STRING} (^|&amp;)id=review-[0-9]+(&amp;|$) [NC]
  RewriteRule ^ /controllers/redirectseo.php? [R=301,L,NC,QSA]
  </code></pre>
  
  <p>Here's the result of my <code>CURL</code> calls:</p>
  
  <pre><code>curl -I http://www.defunctgames.com/shows.php?id=review-1
  HTTP/1.1 200 OK
  
  curl -I http://www.defunctgames.com/controllers/redirectseo.php?id=review-1
  HTTP/1.1 301 Moved Permanently
  </code></pre>
  
  <p><strong>UPDATE 1:</strong></p>
  
  <p>I tried to modify my <code>RewriteRule</code> to get rid of the <code>[QSA]</code>, thinking perhaps that is the issue. It still doesn't return 301. The following rewrite rule DOES return a 301, so I know it works at some level. Does the FQL make a difference perhaps?</p>
  
  <pre><code>RewriteRule ^defunctexplorer.htm$ http://www.defunctgames.com/ [R=301,L]
  </code></pre>
  
  <p><strong>UPDATE 2:</strong></p>
  
  <p>I tried a FQL redirect, and that doesn't make a difference either. Here's what I've got so far:</p>
  
  <pre><code>RewriteCond %{THE_REQUEST} ^GET\s/shows\.php
  RewriteCond %{QUERY_STRING} (^|&amp;)id=([a-z]+)-([0-9]+)(&amp;|$) [NC]
  RewriteRule ^ http://www.defunctgames.com/controllers/redirectseo.php?id=%2-%3 [R=301,L,NC]
  </code></pre>