Apache2访问仅限于本地LAN

use*_*090 5 apache2 virtualhost

直到最近,我还有一堆虚拟网站设置如下:

<VirtualHost 127.0.0.1:1234>
    ...
Run Code Online (Sandbox Code Playgroud)

这适用于在我使用Linux桌面的本地计算机上进行测试.为了测试MS和资源管理器如何从我的Windows笔记本电脑显示我的页面,我将其更改为

<VirtualHost *:1234>
    ...
Run Code Online (Sandbox Code Playgroud)

这也很好,在我的笔记本电脑的IE 上从http:// [mylinuxservername]:1234调用网站.但是,我想将该通配符限制为本地局域网.插入任何ip,如192.nnn.nnn.nnn或192.*.*.*,其中通配符在上面导致在Windows机器上403 Forbidden.本地服务器在我的Linux机箱上仍能正常工作:

<VirtualHost 127.0.0.1:1234 192.*.*.*:1234>
    ...
Run Code Online (Sandbox Code Playgroud)

要么

<VirtualHost 127.0.0.1:1234 192.nnn.nnn.nnn:1234> #exact IP of laptop
    ...
Run Code Online (Sandbox Code Playgroud)

无论如何,我不喜欢上面第二个配置示例中的那个通配符.提示任何人?

phi*_*hag 12

参数VirtualHost是您收听的本地地址,而不是远程地址.

在Apache 2.4及更高版本中,使用该Require指令:

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Apache 2.2或更早版本,请使用authz_host配置:

Order Allow,Deny
Allow from 127.0.0.0/8
Allow from 192.168.0.0/16
Run Code Online (Sandbox Code Playgroud)

这也可以在Apache 2.4工作,但OrderAllow已弃用.