我有 2 个虚拟主机正在查看/var/www/site1
(ServerName site1
) 和/var/www/site2
(ServerName site2
)。我想通过在默认配置中设置重写规则来http://1.2.3.4/site1
使我的网站不可用 ( ):http://1.2.3.4/site2
000-default.conf
RewriteEngine On
RewriteCond %{HTTP_HOST} ^1\.2\.3\.4
RewriteRule (.*) http://test.com/$1 [R=301,L]
http://1.2.3.4/site1
但网站在和仍可访问http://1.2.3.4/site1
(尽管重定向适用于http://1.2.3.4/
)。
我究竟做错了什么?
答案1
尝试这个:
RewriteRule ^(.*)$ http://test.com/$1 [R=301,L]
答案2
我无法理解您描述设置的方式:
http://1.2.3.4/site1
应该返回 404。
和
http://1.2.3.4/site2
应该返回 404。
然而这可能会有帮助:
这文档说:
默认情况下,
mod_rewrite
虚拟主机不会继承主服务器上下文的配置设置。要使主服务器设置应用于虚拟主机,必须在每个<VirtualHost>
部分中放置以下指令:
RewriteEngine On
RewriteOptions Inherit
因此,我的建议是RewriteOptions Inherit
针对每个<VirtualHost>
情况进行定义。