配置虚拟主机;需要只允许一个 IP 地址访问网站并拒绝所有 IP 地址。以下代码有什么问题?

配置虚拟主机;需要只允许一个 IP 地址访问网站并拒绝所有 IP 地址。以下代码有什么问题?
<VirtualHost *:80>
    ServerAdmin example.com
    DocumentRoot "C:/xampp/htdocs/example.com"
    ServerName www.example.com
    ServerAlias example.com
    ErrorLog "logs/example.com-error.log"
    CustomLog "logs/example.com-access.log" common


  
     <Directory "C:/xampp/htdocs/example.com">
    
            Options All -Indexes 
            AllowOverride All



 <RequireAll>
    
    Require all denied
    Require ip 49.204.11.24
    
    </RequireAll>
            

    </Directory>
   </VirtualHost>

答案1

假设您使用的是 Apache 2.4,您的语法是正确的。只需检查您加载的模块,并确保已加载authz_core模块。

要检查模块是否已加载,请使用:

apache2ctl -M

由于我假设该网络服务器可能有一些其他网站可能需要被其他人看到,因此最好在虚拟主机级别而不是全局应用此限制。

<VirtualHost *:80>
        
        ServerName www.example.com
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <Location />
        Require ip 172.20.131.34
        </Location>
</VirtualHost>

所以通过上面的配置,只有 172.20.131.34 作为源 ip,才能够查看我的页面,其他人访问该页面时都会收到 Forbidden 消息。

相关内容