禁用通过主机名访问服务器

禁用通过主机名访问服务器

我在 Debian Squeeze 下使用 Apache HTTPD 服务器。

我如何阻止用户通过服务器主机名(dummy.xxx.com)或 IP 地址(xx.xx.xx.xx)访问我的服务器?!

例如:我不希望他们使用主机名或 IP 地址作为 URL。我已经考虑过使用 mod_rewrite 来实现这一点,但是还有其他选择吗?

谢谢!

更新:

让我用一个例子来解释我的想法:通常,您可以通过输入服务器的 IP 地址或服务器主机名或注册域来访问 apache webserver htdocs。但我想只允许使用域进行访问。

答案1

How can I prevent users to access my server by the hostname or ip address?! 然后,您想完全阻止某些主机访问您的网站。(或者我遗漏了什么?)

当然,如果您在 bsd 上使用 linux 或 pf,那么阻止某些主机的用户的最佳方法是使用 iptables。

例如:(iptables)BLOCK_THIS_IP="xxxx"

iptables -A INPUT -s "$BLOCK_THIS_IP" -j DROP

编辑:

更新您的问题后(​​在评论中,请更正并更新您的问题)我们知道您不想阻止您的网站,而只是限制某些用户的访问。

您仍可以通过制定 iptables 规则来实现这一点,但更简单的方法是通过制定适当的 .htaccess 文件来限制访问。这里有一份很好的指南,介绍如何使用 .htaccess 并用它来限制访问。

http://www.javascriptkit.com/howto/htaccess5.shtml

http://perishablepress.com/stupid-htaccess-tricks/#sec7

答案2

您可以通过实施防火墙并添加规则来实现这一点,对于 *NIX,请查看 B14D3 的答案。在 Windows 上,您可以使用软件配置向导

答案3

设定一个特定的VirtualHost为主机名希望人们使用,并将其设为默认(因此它也会捕获对 IP 地址的请求);然后,将其指向DocumentRoot一个空目录,或者只返回 404,或类似的。

相关内容