Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.htaccess redirect using GET parameters

I have already checked a lot of answers related to .htaccess redirecting, but yet I was unable to elaborate my problem:

I have an old website with blog entries addressed like this:

http://ellrohir.mzf.cz/index.php?page=blog&id=77

Now I also have a new website with "nice urls" where blog entries can be found using:

http://alois-seckar.cz/politics-blog/77

I want to "shut down" the old page and redirect any old links to new site. How to catch and transfer the old url to the new url? I still cannot figure the necessary .htaccess code up :(

like image 706
Ellrohir Avatar asked Sep 26 '22 23:09

Ellrohir


1 Answers

Try this :

RewriteEngine on


RewriteCond %{QUERY_STRING} ^page=([^&]+)&id=([^&]+)$ [NC]
RewriteRule ^index\.php$ http://alois-seckar.cz/politics-%1/%2? [NC,L,R]

Empty question mark at the end is important to discard the orignal query strings from the destination url.

%n is part of the regex in RewriteCond, it's the part matched between ([ and ]+).

This rule will redirect

example.com/index.php?page=foo&id=bar

to

example2.com/politics-foo/bar
like image 75
Amit Verma Avatar answered Nov 01 '22 17:11

Amit Verma