几天以来我一直在研究这个问题,但找不到任何解决方法。
我正在尝试仅允许从本地主机访问Web服务器。这是使用Apache 2.4.6的全新CentOS 7安装。
我创建了一个基本网站:
[root@server2 ~]# cat /var/www/html/secret/index.html
my password
[root@server2 ~]#
然后,对于Apache 2.4+,其虚拟主机和目录为official documentation(192.168.1.10是服务器IP,并且192.168.1.10 serverX.example.com
中有/etc/hosts
):
[root@server2 ~]# cat /etc/httpd/conf.d/varios.conf
<VirtualHost *:80>
DocumentRoot /var/www/html/secret
ServerName serverX.example.com
</VirtualHost>
<Directory "/var/www/html/secret">
AllowOverride None
Options None
Require ip 127.0.0.1 192.168.1.10
</Directory>
[root@server2 ~]#
一切正常,但是:
[root@server2 ~]# curl serverX.example.com/secret
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /secret
on this server.</p>
</body></html>
[root@server2 ~]#
有什么想法吗?预先感谢!
答案 0 :(得分:2)
要使虚拟主机只能由localhost访问,可以将其绑定到IP地址127.0.0.1。
<VirtualHost 127.0.0.1:80>
DocumentRoot /var/www/html/secret
ServerName serverX.example.com
</VirtualHost>
在/etc/hosts
中,您可以改用127.0.0.1 serverX.example.com
。
答案 1 :(得分:0)
必须在末尾添加一个/
:
curl serverX.example.com/secret/
使用Firefox可以正常工作,但是可以使用卷曲或链接,
最诚挚的问候。