虚拟主机是不能在iis上直接做301永久重定向的。。
所以我们必须用代码来实现我们的所希望的功能。
需要的代码如下:
如果上面代码复制一个全站调用文件 一般为config.asp或header.asp,也可以是header.html文件,保存到全站需调用到的文件内即可。实现asp全站的301跳转!
前提是全站是asp?
<%
tulr=”http://www.jofar.cn” ‘这段定义要转跳到的网址
durl=”http://jofar.cn” ‘这段定义需要转跳的网址
hurl=geturl() ‘获取当前页url
if instr(1,hurl,durl,1)>0 then
zurl=replace(hurl,durl,tulr)
Response.Status=”301 Moved Permanently” ? ?’提示当前页面进行301定向
Response.AddHeader “Location”,zurl
end if
‘获取当前url参数的函数
function geturl()
dim scriptaddress,servername,qs
scriptaddress = cstr(request.servervariables(“script_name”))
servername = cstr(request.servervariables(“server_name”))
qs=request.querystring
if qs<>”” then
geturl =”http://”& servername & scriptaddress &”?”&qs
else
geturl =”http://”& servername & scriptaddress
end if
end function
%>
以上亲测确实是返回301状态
对于静态的,没有代码实现301的办法,只有跳转,返回的还是200,仅是跳转,如下:
首先,要说明一点,有没有必须要去做301重定向,相信这个答案每个人心理都是很明白的,那就是必须滴!换域名要做,二级域名要做,带不带www要做,总之,做了权重就集中到了一个页面了,百利而无一害的事情,大家都喜欢!不过要提醒一点,重定向不等同于跳转,希望各位站长慎重!
好了,不废话,看代码:
<script type=’text/javascript’>
if (document.domain ==’jofar.cn’)
this.location = “http://www.jofar.cn” + this.location.pathname + this.location.search;
</script>
你可以放在页面里面,也可以搞成JS调用,随意操作!不过上面的只是跳转不是301
若Apache不支援.htaccess或使用Windos主机商无法帮你设定,那静态页面的转址就只能透过在index.html添加meta refresh tag和标?连结????(canonical tag)来达成301转址。
语法如下:
<meta http-equiv=”refresh” content=”0; url=http://www.jofar.cn/” />
<link rel=”canonical” ?/>
Meta Refresh容易被误会成作弊(SEO SPAM)?
对SEO稍有研究的人或许对meta refresh的使用有些担心,怕会让搜寻引擎误判?作弊。根据我们的操作经验,其实只要正确的使用,并不用太担心?????我们不是故意氧造一些用
来取得排名的页面再转到不相干的网址,而且Yahoo对於meta refresh的看法相当於301转址,但Google会视??302,故还须加上标?连结元素告诉搜寻????www.jofar.cn才是真正需
要被索引的网址。而用rel=”canonical”相当于告诉引掣上面的网址才是要索引的网址!不过这方法如果是跳到本页面时会造成页面不停地刷新。故本人用的JS+REL
如下:
<script type=’text/javascript’>
if (document.domain ==’jofar.cn’)
this.location = “http://www.jofar.cn” + this.location.pathname + this.location.search;
</script>
<link rel=”canonical” ?/>
好象静态301没办法做到,以上方法反回的http状态都是200
实测生效的301代码,不过只能跳到首页,不能全站
<%
currentdomain= request.ServerVariables(“SERVER_NAME”)
If currentdomain=”jofar.cn” then
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,”http://www.jofar.cn”
End if
%>
php+iis下做301代码如下(实测ok):
<?php
$the_host = $_SERVER[‘HTTP_HOST’];//取得进入所输入的域名
$request_uri = isset($_SERVER[‘REQUEST_URI’]) ? $_SERVER[‘REQUEST_URI’] :’ ‘;//判断地址后面部分
if($the_host !== ‘yx.jofar.cn’ )//这是我要以前的域名地址
{
header(‘HTTP/1.1 301 Moved Permanently’);//发出301头部
header(‘Location: http://yx.jofar.cn’.$request_uri);//跳转到我的新域名地址
}
?>
其中if($the_host !== ‘www.jofar.cn’ )中的“!==”是不完全等于的意思,也可以用“!=”不等于,这样,就可以将以前的域名,包括jofar.cn、www.jofar.cn 以及新域名中www.isoerp.cn 全部重定向到yx.joafr.cn。还可以写成:if($the_host == ’www.joafr.cn’)。
需要说明的是,这个代码只能实现当前页面的跳转(也就是加了代码的这个页面的跳转)。要实现整站的跳转,则需在服务器上设置。
将这个代码放到你所有网页的最前面:
1.直接调用,把以上代码复制到一个新文件内,起名为***.php(如:301.php)。在网页文件中调用301.php,调用代码为:<?php include(“301.php”); //301重定向 ?>
2.把以上代码直接添加到页面中。