301重定向是服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。页面永久性移走301重定向主要是将需要转移的网址重定向另一个新的网址上,并且是永久性转移。

1、IIS下301设置
Internet信息服务管理器 -> 虚拟目录 -> 重定向到URL,输入需要转向的目标URL,并选择"资源的永久重定向"。

2、ASP下的301转向代码

<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.playvps.com/blog/301/"
%>
3、ASP.Net下的301转向代码

<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.playvps.com/");
}
<script>
4、PHP下的301转向代码

header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.playvps.com");
exit();
5、CGI Perl下的301转向代码

$q = new CGI;
print $q->redirect("http://www.playvps.com/");
6、JSP下的301转向代码

<%
response.setStatus(301);
response.setHeader( "Location", "http://www.playvps.com/" );
response.setHeader( "Connection", "close" );
%>
7、Apache下301转向代码
新建.htaccess文件,输入下列内容(需要开启mod_rewrite):
1)将不带www的域名转向到带www的域名下

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^roejy.me [NC]
RewriteRule ^(.*)$ http:/www.playvps.com/$1 [L,R=301]
2)重定向到新域名

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://www.playvps.com/$1 [L,R=301]
3)使用正则进行301转向,实现伪静态

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^news-(.+)\.html$ news.php?id=$1
将news.php?id=123这样的地址转向到news-123.html

8、Apache下vhosts.conf中配置301转向
将不带WWW的域名转向到带WWW域名,vhosts.conf中配置为:

ServerName www.roejy.me
DocumentRoot /home/rojey.me

ServerName roejy.me
RedirectMatch permanent ^/(.*) http://www.playvps.com/$1
9、Nginx下的301
不带www转到www域名,在conf中添加

if ($host != 'www.playvps.com' ) {
rewrite ^/(.*)$ http://www.playvps.com/$1 permanent;
}