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

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

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

我使用Apache 2.4.9 ,我的网站使用WampServer

我在这里试过了一些老问题的解决办法,但是没有一个能为我工作。 我已经尝试将虚拟主机的东西粘贴到vhosts.conf中,但是我无法正确地完成,而且我试图用htaccess文件重写东西,但是这也不起作用。

通常情况下,第一个虚拟主机条目也是默认的,因此使您的第一个虚拟主机入口指向具有访问被拒绝页面的文件夹。

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

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

注意:这个例子要求你启用mod_rewrite

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

另一种configuration是:

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