我需要弄清楚如何阻止对我的网站的直接 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>