How to add Apache 301 redirect to VirtualHost in
Apache
I've had two domain names which were pointing to the same website
content.
As one can read in any SEO guide around this is a really bad
practice as search engines things automatically there is a
duplicate site content and this has automatically a negative effect
on the site pagerank.
To deal with situation where multiple domains are pointing to the
same websites its suggested by many SEO specialists that a 301
redirect is created from all the domain websites to a single
website domain which will open the actual website.
Making the 301 direct domain from the sample domain
my-redirect-domain.com to
www.mydomain.com can be
done with a virtualhost dfefinition in either httpd.conf or with
the respective file containing the domain virtualhost
definitions:
Here is the exact VirtualHost code I use to make a 301
redirect.
<VirtualHost *> ServerAdmin support@mydomain.com
ServerName my-redirected-domain.com ServerAlias
my-redirected-domain.com www.my-redirected-domain.com RewriteEngine
on RewriteRule ^/(.*) http://www.mydomain.com/$1 [L,R=301]
</VirtualHost>
After placing the VirtualHost redirect, an apache redirect is
required.
Further on when a Gooogle or Yahoo Bot visits the website and does
any request to
my-redirect-domain.com or
www.my-redirect-domain.com , they will be redirected with a
301 reuturned code to
www.mydomain.com
This kind of redirect however can have a negative impact on the
Apache CPU use (performance), especially if the
my-redirect-domain.com is high traffic domain. This is
because the redirect is done with mod_rewrite.
Therefore it might be better on high traffic domains to create the
mod_rewrite redirect by using a vhost like:
lt;VirtualHost *> ServerAdmin support@mydomain.com
ServerName my-redirected-domain.com Redirect 301 /
http://www.mydomain.com/ </VirtualHost>
The downside of using the Apache 301 redirect capabilities like in
the above example is that any passed domain urls like let's say
http://www.my-redirected-domain.com/support/ would not be
301 redirected to
http://www.mydomain.com/support/ but
instead the redirect will be done straight to
http://www.mydomain.com/