Apache 限制 /var/www 子目录访问

Apache 限制 /var/www 子目录访问

我有 2 个虚拟主机正在查看/var/www/site1(ServerName site1) 和/var/www/site2(ServerName site2)。我想通过在默认配置中设置重写规则来http://1.2.3.4/site1使我的网站不可用 ( ):http://1.2.3.4/site2000-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>情况进行定义。

相关内容