阻止与 Apache Web 服务器的直接 IP 连接

阻止与 Apache Web 服务器的直接 IP 连接

我需要弄清楚如何阻止对我的网站的直接 IP 访问。

例如:我希望当人们1.2.3.4在浏览器中输入我的 IP 地址时,它不起作用,但当他们输入时,www.example.com它起作用。

我正在使用Apache 2.4.9,并且我的网站使用运行WampServer

我尝试过这里一些旧问题的其他解决方案,但对我都不起作用。我尝试过将虚拟主机内容粘贴到 vhosts.conf 中,但无法正确完成,我尝试使用 htaccess 文件进行重写,但也没有用。

答案1

通常,第一个虚拟主机条目也充当默认条目,因此请让您的第一个虚拟主机条目指向具有拒绝访问页面的文件夹。

答案2

一种方法是在全局服务器上下文中设置重写条件,通过要求类似以下示例的 HTTP 标头来禁止基于 IP 的请求:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{REQUEST_URI} !^/error [NC]
RewriteRule ^.(.*) - [L,F]

注意:此示例要求您启用mod_rewrite

另请注意:如果您有多个虚拟主机,您可以修改RewriteCond以进行更广泛的检查或使用多个RewriteCond语句来适应不同的域。

另一种配置是:

<If req('Host') != 'www.example.com'">
  <Location "/">
    Require all denied
  </Location>
</If>

相关内容