301 redirect from URL with query string to new domain with different query string

35,658

You could use a rewrite rule with a query string match condition, such as:

RewriteEngine On
RewriteCond   %{REQUEST_URI}    ^/index.php$
RewriteCond   %{QUERY_STRING}   ^page=news&id=2366$
RewriteRule   ^(.*)$ http://www.example2.com/news.php?name=23546   [R=301,L]

Checkout this blog page for more information on how this works.

Share:
35,658
Sherwin Flight
Author by

Sherwin Flight

Updated on August 10, 2020

Comments

  • Sherwin Flight
    Sherwin Flight over 3 years

    I am trying to figure out how to do a 301 redirect in my htaccess file to redirect some files to a new domain. Here's what I need to know how to do:

    OLD URL: http://www.example.com/index.php?page=news&id=2366

    NEW URL: http://www.example2.com/news.php?name=23546

    The redirects don't have to be automatically created. I can hard-code the pages I need to redirect in the htaccess file, I just don't know the format to use as I've read that a "standard" 301 redirect won't work with query strings.

    Basically this is what I want to do, but from my research so far it doesn't sound like it can be done this way.

    redirect 301 /index.php?page=news&id=2366 http://www.example2.com/news.php?name=23546
    
  • GDP
    GDP about 11 years
    I had the same problem - I'm curious why the simple redirect 301 ... doesn't work as it seems it should according to all my googling.