Назад | Перейти на главную страницу

Конфигурация Apache catchall

Я настраиваю Catchall как виртуальный хост Apache. Идея состоит в том, чтобы этот vhost обрабатывал все запросы, которые не были выполнены предыдущими определениями, а затем условно перенаправлял их на другой URL. Вот что у меня есть на данный момент:

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

Кажется, что обработка правил не останавливается после обработки первого правила, даже если оно установлено как последнее. Это означает, что с неправильного сайта1 я получаю URL: http://correctsite1.com/http://correctsite2.com

Что я делаю не так?

Изменить: в окончательной версии будет только 2 правильных URL-адреса сайта с несколькими RewriteConds с использованием [OR].

$ cat /etc/httpd/conf.d/_default.conf 
<VirtualHost _default_:80>
        Redirect / http://YOUR-URL-GOES.HERE
</VirtualHost>
$