深蓝网络

网站建设,程序开发,主机域名,搜索引擎

301转向代码-带判断可用于同一目录


301转向代码-带判断可用于同一目录。 之前网络上的301重定向代码都是直接转向,这样的话就需要把域名解析到不同的主机上。然后再把不带WWW的域名主机上然后做301转向到www主机上。这样就需要两个主机,成本和费用比较高。如果指向同一主机的话会造成301转向死循环。

要解决这个问题,其实可以在301转向前加一个判断。如果不带WWW的REQUEST转到WWW,带WWW的则不做处理。

<% 
if request.ServerVariables("HTTP_HOST")="jpesun.com" then 
Response.Status="301 Moved Permanently"  
Response.AddHeader "Location","http://www.jpesun.com/"  
Response.End
end if 
%>

 如果是.net程序的话,可以做在首页的Page_Load,或者Global.asax里有个"Application_BeginRequest" 事件中做转向。
 

if (!Request.Url.Host.ToLower().Contains("www 
    {  
    Response.Clear(); 
    Response.StatusCode = 301;
    Response.Status = "301 Moved Permanently";
    Response.AddHeader("Location", "http://www." + 
        Request.Url.Host + Request.Url.PathAndQuery.ToLower().Replace("/index.aspx","")); 
    Response.End(); 
    }

2016.02更新php

<?php   
 $the_host = $_SERVER['HTTP_HOST'];
 $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';

 if($the_host !== 'dieep.com') {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: http://www.dieep.com' . $_SERVER['PHP_SELF']  . $request_uri);
 }
?>

 


上一篇  |  下一篇
发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。