我的网站可以从两个访问
www.mysite.com/
HTTP://my.ip.add.res/
我宁愿只有第一种方法。 我能阻止我的网站被IP访问吗?
我正在使用Litespeed,我可以使用.htaccess文件进行configuration。
这个简单的答案是有一个默认的虚拟主机redirect到您的其他虚拟主机之一。 不幸的是,我不知道如何用litespeed做到这一点,但是使用apache,你将有多个虚拟主机,其中列出了默认列出的第一个和其他基于名称的虚拟主机。 当主机:标题匹配其中一个虚拟主机时,它将由这些主机提供服务。 当您通过IP地址连接时,它将不会与虚拟主机中的某个名称相匹配,并将使用第一个名称。 在该虚拟主机中,您将redirect到您希望用户连接到的主机名。
这确实需要客户端使用HTTP 1.1,但是这是一个罕见的客户端。
每当浏览器发出http:// xyzw URL的请求时,您的站点将始终可以通过其IP地址访问。 但是,使用mod_rewrite(Apache)可以拦截每个http请求并redirect到http://www.mysite.com URL。 因此,任何请求http:// xyzw /将redirect到http://www.mysite.com/whatever 。 如果网站可以访问互联网,并且Google索引对您很重要,那么您需要发布301(永久)redirect,以便按名称对网页进行索引。
在http://www.webmasterworld.com/apache/3238805.htm有一个重写规则的例子。
#redirect到规范域中的请求页面
RewriteRule ^ /(。*)$ http://www.mysite.com/ $ 1 [R = 301,L]
您需要在您的Web服务器上的主机标题。 这样,它需要浏览器发送一个有效的主机标题(www.mysite.com或mysite.com)来检索该网站。 这仍然暴露Web服务器到基于IP的查询,因为端口仍然是打开的,但它不应该与内容响应。
如果你在Linux服务器上,你可以使用iptables:
iptables -I INPUT -d YourIP -p tcp –dport 80 -m string –to 700 –algo bm –string'Host:YourIP'-j DROP
而你的networking服务器不会回应。