mod_rewrite e VirtualHosts: como redirecionar 1 site, mas manter os outros?

1

Eu hospedo 4 hosts virtuais em um servidor dedicado do CentOS 5.6:

# rpm -qa|grep http
httpd-2.2.3-45.el5.centos.1

Um deles é o meu site Drupal 7.2 e outro estava segurando textos estáticos e fotos pertencentes à minha esposa - aqui está o trecho do httpd.conf:

<VirtualHost 85.214.19.116:80>
    DocumentRoot /var/www/html/preferans.de
    ServerName preferans.de
    ServerAlias preferans.de *.preferans.de
    ErrorLog logs/preferans.de/error_log
    CustomLog logs/preferans.de/access_log common
    <IfModule mod_rewrite.c>
        <Directory "/var/www/html/preferans.de">
            RewriteEngine on

            # needed by Drupal 7 for "clean URLs"
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_URI} !=/favicon.ico
            RewriteRule ^ index.php [L]
        </Directory>
    </IfModule>
</VirtualHost>

<VirtualHost 85.214.19.116:80>
    DocumentRoot /var/www/html/larissa-farber.de
    ServerName larissa-farber.de
    ServerAlias larissa-farber.de *.larissa-farber.de
    ErrorLog logs/larissa-farber.de/error_log
    CustomLog logs/larissa-farber.de/access_log common
</VirtualHost>

Agora, minha esposa decidiu transferir seus arquivos para o serviço de blog do Tumblr.

Como medida rápida, coloquei o seguinte index.php em seu diretório:

# cat /var/www/html/larissa-farber.de/index.php
<?php
header('Location: http://larissa-farber.tumblr.com/');
?>

Isso funciona bem, mas eu prefiro usar o mod_rewrite para fazer o redirecionamento (isto é - até eu descobrir como transferir seu endereço da web para o Tumblr completamente, o que também deveria ser possível).

A partir da leitura dos documentos, eu entendo que preciso de algo como:

RewriteRule ^(.*)$ http://larissa-farber.tumblr.com/$1 [R=301,L]

Mas onde colocar isso e como manter meus outros 3 sites virtuais funcionando?

Obrigado! Alex

(Esta não é uma promoção de nenhum dos sites acima, estou com preguiça de usar endereços falsos aqui e não vejo uma razão para isso).

    
por Alexander Farber 18.06.2011 / 15:24

2 respostas

1

Você não precisa de mod_rewrite para redirecionamentos tão simples. Use a diretiva Redirecionar de mod_alias .

Coloque o seguinte na seção VirtualHost com ServerName larissa-farber.de :

Redirect permanent / http://larissa-farber.tumblr.com/
    
por 18.06.2011 / 15:54
0

Sua diretiva host virtual para seu site drupal já tem uma seção mod_rewrite, apenas duplique essa estrutura no virtualhost para seu outro site. Alternativamente, você pode colocar o conteúdo mod_rewrite em um arquivo .htaccess na raiz da web do host virtual específico que você deseja redirecionar.

    
por 18.06.2011 / 15:45