We have a central httpd.conf and we include confs for various virtual hosts. Until today, we didn't really have a need for "www.subdomain.site.com" domains, only "subdomain.site.com." Now we do, so I am trying to figure out which of these two approaches is better:
[1]. Use a Rewrite:
RewriteCond %{HTTP_HOST} ^www.subdomain.site.com
RewriteRule ^(.*)$ http://subdomain.site.com$1 [R=301]
OR
[2]. Use ServerAlais:
<VirtualHost 111.22.33.44:80>
ServerName subdomain.site.com
ServerAlias www.subdomain.site.com
Include conf/subdomain.conf
</VirtualHost>
I imagine there is more processing on the Rewrite, but unsure of how ServerAlias would behave in this mix. Does one get better SEO foo than the other?
Any and all ideas welcome!
Thanks,
KM
I'd imagine the rewriting solution gets better SEO-foo (nice term :-P) since it's usually considered best to have one canonical domain that everybody gets sent to for a particular set of content. In other words, having two different domains that produce the same results from the server can split your site rankings between the two domains, reducing the value of each. (Google allows you to specify a canonical domain using its Webmaster Tools, but that only works on Google)
I think you can actually use a
Redirect
here, i.e.That is less computationally intensive than invoking mod_rewrite.
I would probably do both. With something like:
Note: the solution by David Zaslavsky above does more or less the same thing, but this way you don't have to do a separate VirtualHost section for each subdomain.
Here's what works for me:
The advantage of doing this instead of RedirectMatch is that it will redirect domain.com/about-us to www.domain.com/about-us instead of just redirecting every request to the home page. It also uses a 301 redirect, which transfers search engine ranking from domain.com/about-us to www.domain.com/about-us.