Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.htaccess RewriteRule to preserve GET URL parameters

I'm having issues keeping the parameters of the URL working after an .htaccess URL rewrite.

My .htaccess rewrite is as follows:

 RewriteEngine on
 RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2

Which means:

example.com/index.php?lang=en&page=product displays as example.com/en/product

For some reason, when I add a ?model=AB123&color=something at the end of my URLs I am not able to retrieve those parameters in PHP using $_GET['model'] and $_GET['color'] even though they are present in the displayed URL.

Why aren't the variables passed along?

like image 856
Enkay Avatar asked Nov 01 '10 17:11

Enkay


1 Answers

You need to append with the [QSA] (query string append) tag. Try

RewriteEngine on
RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 [QSA]

See http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

like image 165
Simon Avatar answered Nov 02 '22 22:11

Simon