我在 CentOS 5 机器上设置了 Apache 和一些虚拟主机。
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/default
ServerName fail
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/website1.net
ServerName website1.net
ServerAlias *.website1.net
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/website2.com
ServerName website2.com
ServerAlias *.website2.com
</VirtualHost>
有人为 website2.com 设置了 CNAME,有效地假装他运营该网站。
我能够使用更多的 Apache 配置魔法来重定向它。
<VirtualHost *:80>
ServerName evil.villain.com
RedirectMatch permanent ^/?(.*) http://website2.com/$1
</VirtualHost>
但是这种技术要求我指定要重定向的域。
有没有办法我可以重定向全部把我的域名添加到“邪恶”的CNAME记录中?
答案1
Apache 将为未知的服务器名称提供默认虚拟主机。将其放在虚拟主机配置的顶部,使用以下命令进行验证apachectl -S
<VirtualHost _default_:*> RedirectMatch 永久 ^/?(.*) http://website2.com/$1 </虚拟主机>
http://httpd.apache.org/docs/2.0/vhosts/examples.html#default