$ cat /etc/httpd/conf.d/_default.conf
<VirtualHost _default_:80>
Redirect / http://YOUR-URL-GOES.HERE
</VirtualHost>
$
Estou configurando um Catchall como um vhost do Apache. A ideia é que esse vhost processe todas as solicitações que não foram atendidas por definições anteriores e, em seguida, as redirecione condicionalmente para outra URL. Aqui está o que eu tenho até agora:
<VirtualHost *:80>
ServerName default
ServerAlias *
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} (www\.)?wrongsite1.com$ [NC]
RewriteRule ^(.*)$ http://correctsite1.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} (www\.)?wrongsite2.com$ [NC]
RewriteRule ^(.*)$ http://correctsite2.com/$1 [R=301,L]
</IfModule>
</VirtualHost>
Parece que o processamento de regras não é interrompido depois que a primeira regra é processada, mesmo que esteja definida como a última. Significado, de wrongsite1, acabo com um URL de: http://correctsite1.com/http://correctsite2.com
O que estou fazendo de errado?
Editar: na versão final, haverá apenas dois URLs corretos do site, com vários RewriteConds, usando [OR].
$ cat /etc/httpd/conf.d/_default.conf
<VirtualHost _default_:80>
Redirect / http://YOUR-URL-GOES.HERE
</VirtualHost>
$