介绍一下针对各类程序系统实施301重定向的代码: 1、Linux主机重定向 Godaddy的
Liunx主机,Godaddy本身已经支持Apache,所以直接创建一个.htaccess文件就可以了,一般来说,在本地无法创
建.htaccess的时候可以先创建一个txt格式文件,上传到根目录的时候再重命名为“.htaccess”就可以了。网上很多如何进行
301重定向的教程,无论是整站重定向还是单页重定向。下面就以我的www.为例 1.1 无www域名转移到www域名 RewriteEngine on rewritecond %{http_host} ^ [nc] rewriterule ^(.*)$ http://www./$1 [r=301,nc] 1.2 整站301重定向 Options +FollowSymlinks RewriteEngine on RewriteCond %{HTTP_HOST} ^ [NC] RewriteRule ^(.*)$ http://www./$1 [L,R=301] RewriteCond %{HTTP_HOST} ^www. [NC] RewriteRule ^(.*)$ http:///$1 [L,R=301]
另外一种是在根目录下的index.php里这样弄
header(“HTTP/1.1 301 Moved Permanently”); header(“Location:http:///”); exit();
2、ASP主机301重定向
在 index.asp 或 default.asp 的最顶部加入以下几行: 代码如下:
<% Response.Status=”301 Moved Permanently” Response.AddHeader “Location”,”www. ” Response.End %>
3、ASP.net主机301重定向
ASP .NET:
Response.Status = “301 Moved Permanently”;
Response.AddHeader(”Location”,"http://www.");
}
我封装在一个类里:
using System; using System.Collections.Generic; using System.Text; using System.Web.UI; using System.Web.UI.HtmlControls;
namespace ClassLib { public class URLClass { private bool flag301 = false;//是否启动 301 private bool isIndex = false;//是否 返回主页 或者保留在当前页 /// <summary> /// 构造函数 /// </summary> /// <param name="fl">是否启动 301</param> /// <param name="page">Page</param> /// <param name="strURL">格式www.xxx.com</param> public URLClass(bool fl, Page page, string strURL) { flag301 = fl; URL301(page, strURL); } /// <summary> /// 返回主页 /// </summary> /// <param name="page"></param> /// <param name="strURL">格式www.xxx.com</param> public void URL301(Page page, string strURL) { //301重定向 if (page.Request.Url.DnsSafeHost != strURL && flag301 == true) { page.Response.Clear(); page.Response.StatusCode = 301; page.Response.Status = "301 MovedPermanently"; page.Response.AddHeader("Location", "http://" + strURL); page.Response.End(); } } } }
4 PHP的301重定向
header('HTTP/1.1 301 Moved Permanently');//发出301头部 header('Location: http://www.'.$strDomain.$request_uri);//跳转到我的新域名地址
我用301.inc.php文件写了301代码,在其他文件头部都引用上 就可以了
<?php //----------------------------------- //301 重定向 $strDomain="chinawecan.com"; $the_host = $_SERVER['HTTP_HOST']; //取得进入所输入的域名 $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判断地址后面部分 if($the_host !== 'www.'.$strDomain) //这是我要以前的域名 { /*“!==”是不完全等于的意思,也可以用“!=”不等于,这样,就可以将以前的域名, 包括gcxirang.com、www.gcxirang.com以及新域名中我gcidc.net全部重定向到www.gcidc.net*/ header('HTTP/1.1 301 Moved Permanently');//发出301头部 header('Location: http://www.'.$strDomain.$request_uri);//跳转到我的新域名地址 }
//---------------------------------- ?>
引用如下:
<?php //----------------------------------- //301 重定向 include('include/301.inc.php');
?>
5 JSP的301重定向
如一页面article.jsp
[code]
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader("Location","/other.jsp");
return; %>
[code]
在apache中如何实现301转向呢?
编辑.htaccess的方法。 注意:在设置301重定向之前务必备份相应目录下的.htaccess文件。 1.重定向到www. 这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.到也是出于同样的原因,只是形式不同。 打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.$ [NC] RewriteRule ^(.*)$ http://www./$1 [L,R=301]
2.重定向www.到
RewriteEngine On RewriteCond %{HTTP_HOST} !^$ [NC] RewriteRule ^(.*)$ http:///$1 [L,R=301]
3.重定向old到www.new
RewriteEngine On RewriteCond %{HTTP_HOST} !old$ [NC] RewriteRule ^(.*)$ http://www.new/$1 [L,R=301]
4.重定向old to new
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !old$ [NC] RewriteRule ^(.*)$ http://new/$1 [L,R=301]
5.重定向/file/file.php 到 other/otherfile/other.php
RewriteCond %{HTTP_HOST} ^www.$ RewriteRule ^file/file.php$ http://www.other/otherfile/other.php [R=301,L]
|