服务器虚拟主机禁止输入ip直接访问或输入ip自动301跳转到域名

2015年1月7日11:30:42 评论 786 次浏览

如何设置禁止输入IP直接访问网站

公司网站用的是阿里云的独立服务器,phpnow配置的简易环境,最近发现百度收录的是ip,用ip也可以直接访问。购买了独立IP后你可能会发现不用输入域名,直接输入你网站的IP地址也可以访问你的网站了!不过,接触过SEO的朋友肯定都知道,这会被搜索引擎认为网上存在了“重复内容”,对我们做站是不利的!怎么办呢?当然是禁止输入IP就可以直接访问网站了!对于VPS或独立主机的朋友来说,他们可以通过修改httpd.conf文件的方法来实现,而且修改后需要重新启动,如果你使用的只是虚拟主机,这种方法肯定是不行了!那么,虚拟主机如何设置禁止输入IP直接访问网站呢?

服务器虚拟主机禁止输入ip直接访问或输入ip自动301跳转到域名

虚拟主机设置禁止输入IP直接访问网站的方法
使用虚拟主机当然没有对服务器根目录文件的编辑权限了!不过咱们可以编辑.htaccess文件不是?如果没有.htaccess文件的话,就需要我们自己先创建一个,不过在windows下不能直接创建这样的文件,我们可以先创建了个htaccess.txt文件,然后把下面的代码加进去。之后再把这个文件上传到你网站的根目录下,并将其改名为.htaccess。

RewriteCond %{http_host} ^你网站的IP地址 [NC]
RewriteRule ^(.*)$ 域名/$1 [R=301,L]
RewriteBase /

VPS或服务器设置禁止输入IP直接访问网站的方法
下面这部分内容是从网络上搜集的,仅限apache服务器系统,大家可以参考一下:

apache设置禁止使用IP访问网站的实现方法

在用apache搭建的WEB服务器的时候,如何想只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢,有以下两种方法可以实现(当然肯定还会有其他方法可以实现),都是修改httpd.conf文件来实现的,下面举例说明。

方法一:在httpd.conf文件最后面,加入以下代码

NameVirtualHost 221.*.*.*
<VirtualHost 221.*.*.*>
ServerName 221.*.*.*
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>
<VirtualHost 221.*.*.*>
DocumentRoot “/www/web”
ServerName jiaook.com
</VirtualHost>

说明:蓝色部分是实现拒绝直接通过221.*.*.*这个IP的任何访问请求,这时如果你用221.*.*.*访问,会提示拒绝访问。红色部分就是允许通过www.gd97.com这个域名访问,主目录指向/www/web(这里假设你的网站的根目录是/www/web)

方法二:在httpd.conf文件最后面,加入以下代码

NameVirtualHost 221.*.*.*
<VirtualHost 221.*.*.*>
DocumentRoot “/www/test”
ServerName 221.*.*.*
</VirtualHost>
<VirtualHost 221.*.*.*>
DocumentRoot “/www/web”
ServerName jiaook.com
</VirtualHost>

说明:蓝色部分是把通过221.*.*.*这个IP直接访问的请求指向/www/test目录下,这可以是个空目录,也可以在里面建一个首页文件,如index.hmtl,首面文件内容可以是一个声明,说明不能通过IP直接访问。红色部分的意思跟方法一是一样的。

注:修改后需要重启apache

继续阅读
weinxin
加我微信
微信扫一扫,加我微信好友,共同交流,共同进步! (备注:焦国强博客)
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: