如何将对虚拟主机(子域)的访问限制为几个特定的​​IP?

时间:2011-03-25 18:31:48

标签: apache mod-rewrite virtualhost

问题是这个虚拟主机指向与主站点相同的根位置。它只是为了反映sub.mysite.com上www.mysite.com的内容。这禁止我在.htaccess中使用允许和拒绝规则,因为这也会影响www.mysite.com流量。我也尝试过使用:

RewriteCond %{HTTP_HOST} ^sub.mysite.com$
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$ [OR]
RewriteCond %{REMOTE_ADDR} !^123\.55\.76\.234$ [OR]
RewriteCond %{REMOTE_ADDR} !^12\.54\.67\.87$
RewriteRule ^.*$ http://www.mysite.com [R=301]

IP地址不属于某个范围,因此我认为生成单行REGEX来覆盖所有这些都不起作用,并且使用上述一系列条件只是不起作用,而且似乎很乱。以上IP仅仅是示例。我需要限制对大约10个唯一IP的访问。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

尝试在目录节点下的virtualhost中定义allow和deny。这应该只对你想要的虚拟主机生效。

<VirtualHost 111.22.33.55:8080>
    ServerName sub.mysite.com
      <Directory proxy:>
          Order Deny,Allow
          Deny from all
          Allow from 111.22.33
      </Directory>
</VirtualHost>