apache只允许本地主机通过IP返回错误301

时间:2019-01-16 21:59:07

标签: apache centos localhost access http-status-code-403

几天以来我一直在研究这个问题,但找不到任何解决方法。

我正在尝试仅允许从本地主机访问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 ~]#

有什么想法吗?预先感谢!

2 个答案:

答案 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可以正常工作,但是可以使用卷曲或链接,

最诚挚的问候。