我在Debian Squeeze下使用Apache HTTPD Server。
如何防止用户通过服务器主机名(dummy.xxx.com)或IP地址(xx.xx.xx.xx)访问我的服务器?
例如:我不希望他们使用主机名或IP地址作为URL。 我已经想过使用mod_rewrite,但有另一种select吗?
谢谢!
更新:
让我用一个例子来解释我的想法:通常你可以通过键入服务器的IP地址或服务器主机名或注册域来访问Apache Web服务器htdocs。 但是我想只允许访问域。
How can I prevent users to access my server by the hostname or ip address?! 然后,你想完全阻止你的网站的一些主机。 (或者我错过了什么?)
从某些主机屏蔽用户的最好方法是使用iptables,当然如果您在bsd上使用linux或pf。
例如:(iptables)BLOCK_THIS_IP =“xxxx”
iptables -A INPUT -s "$BLOCK_THIS_IP" -j DROP
编辑:
更新您的问题(在评论中,请更正您的问题,并更新您的问题),我们知道你不想阻止你的网站,但只限制一些用户的访问。
你仍然可以通过制定iptables规则来实现这一点,但更简单的方法是限制访问权限做出正确的.htaccess文件。 这里是很好的指导如何使用.htaccess并限制访问它。
您可以通过实施防火墙和添加规则来做到这一点,* NIX检查B14D3的答案。 在Windows上,您可以使用软件configuration向导 。
为不希望用户使用的主机名设置一个特定的VirtualHost ,并将其设置为默认(这样它也会捕获IP地址的请求); 然后,将DocumentRoot指向一个空目录,或者只是返回一个404或类似的。