httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tom Evans <tevans...@googlemail.com>
Subject Re: [users@httpd] ServerAlias and RewriteRule
Date Wed, 17 Aug 2011 16:03:22 GMT
On Wed, Aug 17, 2011 at 4:56 PM, Richard Taubo <ort@bergersen.no> wrote:
> Thanks!
>
> So to be 110% clear, since this is kind of important to get right :-)
>
> 1) So either this – leave off the / from the end of the rewritten URL:
>        RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]
>
> 2) Or this – not capture the slash from the original URL:
>        RewriteRule ^/(.*)$ http://www.example.com/$1 [L,R=301]
>
> 3) But not this – as was the alternative I started out with (the browsers I have tested
> do not seem mind, but the rewrite logs shows that an extra slash is added):
>        RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
>
>>>
>>> Question 2)
>>> Is the method I use to alias "example.com" with "www.example.com",
>>> a good way to set up a ServerAlias in my httpd.conf file, or are there better
ways?
>>> My current method, as mentioned above, is:
>>>    ServerName www.example.com
>>>    ServerAlias example.com
>>>    RewriteEngine On
>>>    RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
>>>    RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]
>>>
>>
>> It's fine. Some people prefer to have the host name canonicalization
>> occur in a separate vhost, as this separates the configuration for the
>> 'correct' hostname from the configuration for 'incorrect' hostnames.
>
> So instead of:
> <VirtualHost *:80>
>   ....
>   ServerName www.example.com
>   ServerAlias example.com
>   RewriteEngine On
>   RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
>   RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]
> </VirtualHost>
>
> They would rather create two VirtualHosts like this instead:
> <VirtualHost *:80>
>   ....
>   ServerName www.example.com
>   ....
> </VirtualHost>
>
> <VirtualHost *:80>
>   ....
>   ServerName example.com
>   RewriteEngine On
>   RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]
>   ....
> </VirtualHost>
>
>
> Appreciate your answers!
>
> Richard Taubo

Yep, precisely. Personally I do option 2 for the first question, and
multiple vhosts for the second question (but a single vhost is also
perfectly fine).

Cheers

Tom

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message