9

I want to 301 redirect all example.org to www.example.org. The following example is doing just that, but it's got a lot of noise to it and is thus hard to maintain and error prone:

<VirtualHost 192.0.2.123:80>
        ServerName      example.org
        RedirectPermanent       /               http://www.example.org
</VirtualHost>
<VirtualHost 192.0.2.123:80>
        ServerName      www.example.org
        DocumentRoot    /usr/local/www/example
</VirtualHost>

Do you happen to know if there's some shorter version for the whole thing above?

Something like this pseudo-config:

<VirtualHost 192.0.2.123:80>
        ServerName      www.example.org
        ServerAlias     example.org
#       Redirect-Every-ServerAlias-To-ServerName
        DocumentRoot    /usr/local/www/example
</VirtualHost>

So that way I would just need to provide every subdomain that should be redirected under ServerAlias ?

womble
  • 95,029
  • 29
  • 173
  • 228
user569825
  • 331
  • 3
  • 5
  • 12
  • You can use mod_rewrite to redirect all requests to example.org to a www.example.org -- only 2 lines (well, 3 including engine activation directive). – LazyOne Aug 16 '11 at 09:03

2 Answers2

14

Use mod_rewrite, something like this:

RewriteEngine On
RewriteCond %{HTTP_HOST}  !^www.example.org [nocase]
RewriteRule ^(.*)$        http://www.example.org$1 [last,redirect=301]
womble
  • 95,029
  • 29
  • 173
  • 228
O G
  • 854
  • 4
  • 6
  • 1
    A small improvement to this is to use !^www.example.org in your RewriteCond which will make it continue working no matter how many ServerAlias directives your vhost has. – Ladadadada Aug 16 '11 at 09:50
  • You can also use `%{SERVER_NAME}` in the expressions – OrangeDog Sep 04 '18 at 10:25
0
<VirtualHost *:80>
    ServerName www.example.org
    DocumentRoot /usr/local/www/example
</VirtualHost>

<VirtualHost *:80>
    ServerName example.org
    ServerAlias *.example.org another.org *.another.org
    Redirect 301 / http://www.example.org/
</VirtualHost>

make sure to put them in the right order, www first

Jan
  • 11