How can I redirect any ServerAlias to the respective ServerName?
28,006
Use mod_rewrite, something like this:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.org [nocase]
RewriteRule ^(.*)$ http://www.example.org$1 [last,redirect=301]
Related videos on Youtube
Author by
user569825
Updated on September 18, 2022Comments
-
user569825 almost 2 years
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
?-
LazyOne almost 13 yearsYou 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).
-
-
Ladadadada almost 13 yearsA 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 over 12 yearsYour answer is essentially the same as the example he gave of what he is currently doing.
-
OrangeDog almost 6 yearsYou can also use
%{SERVER_NAME}
in the expressions