I am trying to create a mod_rewrite rule that will handle transparently rewriting a friendly URL to a query string redirect behind the browser.

Every tutorial says to use the last flag [L]

but this does not work, per se. or it seems not to.

The original URL that works looks like this


my friendly URL looks like this


my rewrite rule looks like this

RewriteCond %{THE_REQUEST} ^GET\ /locations/
RewriteRule ^locations/(.*)/(.*)$ /locations?state=$1&city=$2 [L]

I get a 404 error when I try to his my friendly URL

however, if I add the redirect flag [R]

RewriteCond %{THE_REQUEST} ^GET\ /locations/
RewriteRule ^locations/(.*)/(.*)$ /locations?state=$1&city=$2 [R, L]

The URL redirects and the page loads, however the address bar gets updated to read


Why does the redirect work but the non-redirect not? is it because it's too late for Apache to consume the rewritten URL and re-parse it to the actual final URL?

How might I get around this?

closed as off-topic by brentwpeterson, Fabian Schmengler, Keyul Shah, Qaisar Satti, Rajeev K Tomy Jul 19 '16 at 5:36

  • This question does not appear to be about the Magento e-Commerce platform within the scope defined in the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 4
    I'm voting to close this question as off-topic because this is an HTACCESS question – brentwpeterson Jul 18 '16 at 17:42
  • Welcome to Magento SE. This does not look like a Magento related question, because Magento works with "friendly" URLs instead of ?state=x&city=y out of the box, so there are no additional mod_rewrite rules required. If it actually is about Magento, please try to explain what you are trying to achieve to get an answer how to solve it in code. See: meta.stackexchange.com/questions/66377/what-is-the-xy-problem – Fabian Schmengler Jul 18 '16 at 20:53
  • (otherwise try your luck at serverfault.com instead) – Fabian Schmengler Jul 18 '16 at 20:54