.htaccess 301 redirect all pages on old domain to a single page on new domain

Dan Horvat picture Dan Horvat · Feb 24, 2013 · Viewed 19.5k times · Source

I'm looking to redirect each and every page on the old domain to a single page on the new domain. It should also redirect both the www and non-www versions. Every single request to the domain old.com, whatever it may be, should lead to www.new.com root.

old.com/1.php
www.old.com/2.php
old.com/2.php
old.com/links/index.php
old.com/about-us.html
old.com/?string=1

should all redirect to:

www.new.com/

I'm looking for a .htaccess solution.

Answer

Ian Roberts picture Ian Roberts · Feb 24, 2013

You can use RedirectMatch in the old.com vhost

RedirectMatch permanent .* http://www.new.com/

Redirect appends the trailing portion of the matched URI to the redirection URI but with RedirectMatch it's up to you to choose the parts (if any) that you want to transfer using parentheses and $number references.

If the old and new domains must be aliases for the same document root on disk then you'll probably have to use mod_rewrite

RewriteEngine on
RewriteCond %{HTTP_HOST} old\.com$
RewriteRule .* http://www.new.com/ [L,R=301]