apache, разрешающий только localhost по IP, возвращает ошибку 301 - PullRequest
0 голосов
/ 17 января 2019

Я смотрю на это уже несколько дней и не могу найти работу вокруг.

Я пытаюсь просто разрешить доступ к веб-серверу только с локального хоста. Это новая установка CentOS 7 с Apache 2.4.6.

Я создал простую сеть:

[root@server2 ~]# cat /var/www/html/secret/index.html
my password
[root@server2 ~]#

Затем virtualhost и каталог как официальная документация для apache 2.4+ (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 голосов
/ 26 января 2019

Было необходимо добавить один / в конце:

curl serverX.example.com/secret/

С firefox работает нормально, но с curl или elinks нет.

С уважением.

0 голосов
/ 17 января 2019

Чтобы сделать виртуальный хост доступным только для 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.

...