Apache catchall 配置

Apache catchall 配置

我正在将 Catchall 设置为 Apache vhost。这个想法是让这个 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,以及多个 RewriteCond,使用 [OR]。

答案1

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

相关内容