Vhost访问控制

时间:2014-05-01 09:50:44

标签: apache .htaccess access-control vhosts

如何才能使某个地址只能访问我的某个虚拟主机?

我试过了:

<VirtualHost *:80>
    DocumentRoot "C:\Web Server\phpmyadmin"
    ServerName localhost

    <Directory />
    Require all granted
    Require ip 192.168.0.10
    </Directory>


    # Other directives here
</VirtualHost>

    DocumentRoot“C:\ Web Server \ phpmyadmin”     ServerName localhost

<Directory />
<RequireAll>
Require all granted
Require ip 192.168.0.10
</RequireAll>
</Directory>


# Other directives here

但Apache拒绝开始。

2 个答案:

答案 0 :(得分:1)

一旦我通过vhost配置尝试了相同的操作,并因为依赖于其他apache配置文件而失败。我最终使用.htaccess文件限制只访问我的IP - 它在我迄今为止的所有场景中都有效:

示例htaccess配置:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.php
RewriteCond %{REMOTE_ADDR} !=111.111.111.111
RewriteRule ^.*$ /maintenance.php [R=302,L]

它会将IP不是111.111.111.111的任何用户重定向到maintenance.php文件,在该文件中,您可以向用户发送一条消息,告知访问被阻止。

我给你这个例子是因为我看到这个问题也被标记为&#34; .htaccess&#34;。

答案 1 :(得分:0)

这应该可以解决问题:

<VirtualHost *:80>
  DocumentRoot /var/www/test
  <Directory /var/www/test>
    Order deny,allow
    Deny from all
    Allow from <IP>
  </Directory>
</VirtualHost>
2.4使用中的

更新

<Directory /var/www/test>
    Require ip <IP>
</Directory>