在我的 Apache 配置文件中httpd.conf
我有:
...
<Directory />
AllowOverride none
Require all denied
</Directory>
...
<Directory "D:/xampp/htdocs">
Require all granted
</Directory>
...
通过查找这个问题我了解到我应该在某处插入以下几行:
order allow,deny
allow from 127.0.0.1
deny from all
我不知道的是,它与配置文件中已有的内容究竟有什么关系。例如,我该如何处理“Require all granting”这一行?我应该删除它,还是将此代码片段粘贴到它上面?还是粘贴到它下面?其余部分怎么办?
答案1
如果您只想限制对本地系统的访问(即:您不想理解Order
//Allow
指令Deny
),那么以下解决方案就足够了,“正确的解决方案“。
您应该将套接字绑定到127.0.0.1
而不是0.0.0.0
(默认使用) - 这样只有本地系统能够连接,并且限制在套接字/操作系统级别强制执行,而不是在 Apache 内。
为此,请使用Listen
指令-例如,在您的配置中替换Listen 80
为。Listen 127.0.0.1:80
答案2
我该如何处理这一行
Require all granted
?我应该删除它,还是将此代码片段粘贴到它上面?还是粘贴到它下面?其余部分怎么办?
这些order allow, deny
指令是旧语法,应避免使用,因为 Apache 的未来版本可能会取消对它们的支持。您应该(例如)Require all granted
用 ex.替换Require ip 127.0.0.1
:
<Directory "D:/xampp/htdocs">
Require ip 127.0.0.1
</Directory>
Require
您可以阅读使用指令管理访问的基本概述这里。
如何在 XAMPP 中阻止从互联网访问本地主机?
正如在该问题的其他答案中提到的那样,您可能希望考虑将您的httpd.conf
Listen
指令绑定到127.0.0.1
:
例如 httpd.conf
# Listen 80
Listen 127.0.0.1:80
注意事项:
这也会阻止来自您本地网络的任何计算机或设备进行连接。仅
127.0.0.1
允许来自(运行 XAMPP 的计算机)的连接。例如,这不会影响 HTTPS(端口 443)。您需要单独指定此项(
\conf\extra\httpd-ssl.conf
例如,在 下),如下所示Listen 127.0.0.1:443
。
更好的选择?
如果您正在进行本地开发,并且不担心本地网络上的其他计算机或设备访问 XAMPP,那么更简单/更好的选择可能是不将互联网连接从路由器转发到 XAMPP。假设您的路由器不是很糟糕,这应该(理想情况下)可以阻止本地网络之外的任何人进行一般访问。