Como posso redirecionar qualquer ServerAlias para o respectivo ServerName?

7

Eu quero redirecionar 301 todos os exemplos.org para www.example.org. O exemplo a seguir está fazendo exatamente isso, mas tem muito ruído e, portanto, é difícil de manter e propenso a erros:

<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>

Por acaso você sabe se há alguma versão mais curta para a coisa toda acima?

Algo parecido com isto 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>

Dessa forma, eu precisaria fornecer todos os subdomínios que devem ser redirecionados em ServerAlias ?

    
por user569825 16.08.2011 / 10:55

2 respostas

12

Use mod_rewrite, algo assim:

RewriteEngine On
RewriteCond %{HTTP_HOST}  !^www.example.org [nocase]
RewriteRule ^(.*)$        http://www.example.org$1 [last,redirect=301]
    
por 16.08.2011 / 11:07
-1
<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>

certifique-se de colocá-los na ordem correta, www primeiro

    
por 10.11.2011 / 14:57