停止使用直接服务器 IP 访问网站

停止使用直接服务器 IP 访问网站

我需要有关 apache2 中的虚拟主机设置的帮助。我不希望用户直接使用以下服务器 IP 访问我的网站:http://55.66.77.88并希望确保仅在输入特定域名(example.com)时才打开。直接 IP 访问应导致重定向 example.com。

答案1

使用 mod_rewrite 应该可以工作

RewriteCond %{HTTP_HOST}   !^example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         http://example.com/$1 [L,R,NE]

但这应该移至 serverfault.com

答案2

只需创建一个默认的 VirtualHost,它将在任何其他 VirtualHost 之前定义。如果 HTTP/1.1Host标头包含不存在 VirtualHost 的域、根本没有域或使用 HTTP/1.0,则将向客户端提供默认的 VirtualHost。

您可以轻松地将RedirectPermanent指令放入默认的 VirtualHost 中。

有关详细信息,请参阅虚拟主机匹配深度探讨在 Apache httpd 文档中。

如果找不到匹配的虚拟主机,则从客户端连接的 IP 列表中具有匹配端口号的第一个虚拟主机提供请求(如前所述)。

相关内容