腾讯云网站解决方案帮您轻松应对建站成本高/网络不稳等常见问题

如何做301重定向跳转

0
回复
1474
查看
[复制链接]

765

主题

779

帖子

3万

积分

董事

Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72

积分
33025
发表于 19-4-1 14:11:06 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
                 一、如何做301? 301重定向方法大全
* e" e5 C0 k' a  X# K6 F我们在做URL网址标准化时经常要用到301重定向,这里给大家整理了网上的一些301重定向方法,希望对大家有用。
" ^, K- r3 P  ]3 r0 ^' Z" H% u1.apache服务器在.htaccess文件中增加301重定向指令
8 {9 m, s# P/ V采用“mod_rewrite”技术,形如:
2 |( p* v: V1 C7 a# O, l" _RewriteEngine on
/ w; l% Y( x/ BRewriteRule ^(.*)$ http://www.qiuqiufa.com$1 [R=301,L]' N1 G, l) b) Y
2.适用于使用Unix网络服务器的用户4 n# G$ S9 M4 [: [3 j5 Z, U2 ~& z
通过此指令通知搜索引擎的蜘蛛你的站点文件不在此地址下。这是较为常用的办法。
% \) O7 L, b% P形如:Redirect 301 / http://www.qiuqiufa.com
' r+ |2 f0 W& [1 a$ z9 K3 z% A3.绑定/本地DNS
" x3 }* k" w7 R7 \4 E如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
5 ~4 d0 w6 _! R3 M! ODNS服务器的设置( G3 G7 ^$ l0 ?3 E& |5 L
若要将blog.williamlong.info指向www.qiuqiufa.com,则只需在DNS服务中应增加一个别名记录,可写成:blog IN CNAME www.qiuqiufa.com- N7 x& i" ^" `
如需配置大量的虚拟域名,则可写成:* IN CNAME www.qiuqiufa.com.8 m: W  s6 t- {) t0 ^
这样就可将所有未设置的以williamlong.info结尾的记录全部重定向到www.qiuqiufa.com上。8 N4 o3 G' v* j; c! T9 P: o9 O3 V3 G
4.在服务器软件的系统管理员配置区完成301重定向
( E4 y0 Y5 m- l$ O' G% P适用于使用Window网络服务器的用户& L+ `+ M. T. b; v
5.用ASP/PHP实现301重定向:
; q/ e3 d7 Y$ ZASP:
* r' ]! ~- v) x1 c" q( uResponse.Status=”301 Moved Permanently”8 J- k( p; k" N  `! \" p( j2 o
Response.AddHeader “Location”,”http://www.qiuqiufa.com4 \  Q$ `$ |- b/ M
Response.End
8 W; q& V, N) EPHP:+ `! M' Z& Q$ n, \  \5 f& m
header(“HTTP/1.1 301 Moved Permanently”);
. p/ O2 t. g6 @6 b' aheader(“Location:http://www.qiuqiufa.com”);
8 Q- [( M5 q- C& |# w) J  C5 Zexit();
2 K: l' C2 I1 |+ o6 x) L$ |  A( j8 j说明:把代码加到相关页面就可以了。
4 ]1 Y1 R) Z% Z- K, m  K6 E- L简单点评下:对于服务器用户,使用.htaccess最方便。但是特别是国内大部分网民都是使用虚拟主机,这时候可以用第五种办法:用ASP/PHP实现301重定向。大家在使用的时候把我的域名换成你就可以了。
& W1 T: m' I+ b  W5 F# g6 J2 B, \7 `6 k
/ o: m$ y9 W. J6 m; b/ o
二、IIS服务器下做301永久重定向设置方法9 x0 F' p7 b7 V
以前也没怎么关注301重定向,第一因为没有网站要重定向,第二对于不带www的域名我都是用的转发到带www的域名。不过一场风波之后,很多服务商已经不提供转发服务了,虽说易名现在还可以享用到免费的转发服务,但是却不能不带www的转发到带www的同时进行MX记录解析,这对于需要MX解析的朋友也是一大烦恼。
  a* D  s" p8 P而且有些域名在国外,转发更是用不了,也只能进行301永久重定向了,不然搜索引擎是把不带www的站和带www的站分开对待的,只是我们习惯于用带www的域名罢了。( o; v- ~9 ^' q
在网络上看了些教程,再根据自己的实践,也终于搞定了IIS服务器上的301永久重定向设置问题。实现方法如下:  T( ^6 U/ k; W0 d% K
1.新建一个站点,对应目录如E:wwwroot301web。该目录下只需要1个文件,即index.html或者加个404.htm。绑定要跳转的域名,如图:$ ~5 H! g8 u3 F+ u0 q5 Q  {

7 A0 r: k' c5 Q3 E
& {1 h2 B* g1 b, m# g+ i2.在IIS中选中刚才我们建立的站点,右键,属性,主目录,选择重定向到,输入网址如:http://www.xxxx.com,同时注意选中下面的资源的永久重定向选项。如下图:
3 `  w% Z2 m# X4 u+ {; |
7 O) N% q0 z3 A0 B
) \9 _3 `- s# V( z5 h( X- b+ A) V' ~/ a' E% \) W) ^4 V1 B, B
3.到此,我们已经完成了将xxxx.com这个域名301重定向到www.xxxx.com的工作。/ A8 m9 w( A5 L# R6 g
注意问题:! P5 j6 T, W+ Z* o
“上面输入准确的 URL(X)”这个选项建议不要选。
- i1 H/ v* ^$ b% R& S不选的结果是:
. f/ K1 J. l1 p2 x3 P% [9 b1 w当输入xxxx.com转到了www.xxxx.com
9 G0 u9 u% C0 N. S) i2 k& U) N' N* q当输入xxxx.com/sanwen/suibi/时,转到了www.xxxx.com/sanwen/suibi/
/ L+ c: x; \# q( R7 ^: h, I选上的结果是:6 }+ N7 ?* K9 `. l1 p" y
当你输入xxxx.com或者xxxx.com/sanwen/suibi/都会转到www.xxxx.com0 Z3 z) z5 ?% R+ u" Y; t- N
好了,如果只是想把不带www的转到带www的或者其他没有用过的域名转到正在使用的域名,这样就可以了。但是如果你要的域名已经做过网站,想要把权重传递给新网站,可以参考下面这个方法:
( D2 f# \' t1 ^% @# R第一步同上,主要是第二步,如图:- W# C5 A9 r- ]" J1 s+ `5 W4 R

1 O  B3 m. _* [5 p' F7 a8 N! H& q4 z7 T
注意红色字体的部分,在重定向到地址的后面多了$S$Q字符,即写成了http://www.xxxx.com$S$Q。“上面输入准确的 URL(X)”这个选项也打了勾。
, _  W2 H* I" F  A% ?6 S对于$S$Q字符,这里解释一下:% O3 N; t( I( y+ O" P/ t4 E
$S 将请求的URL 的后缀传递给新的URL。后缀是用重定向的URL 代替之后,初始URL 中所保留的部分。
9 M* }( V% H8 U0 ^& Z- t如果未设置 EXACT_DESTINATION 标志,则结果目标URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。
7 K( ~5 _1 {  B" T% G  t$Q 将初始URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号(?)。
% m: E: H0 [2 p- s如果不加上$S$Q字符的话,内页的301都会跳转到首页,加上$S$Q字符的目的就是内页也能准确的跳转到新域名的对应内页。
& A3 L* J' U3 w9 n; o好了,这样就完成了301永久重定向的设置,设置好之后最好能测试下是否返回的是301值,推荐个网址:http://www.seoconsultants.com/tools/headers  B2 ?7 l3 Z' g: F6 m
百度对301的反应并不像想象中那么慢,第二天就收录了xxxx.com这个页面,快照最新。当然,快照的内容是www.xxxx.com的内容,而不是301web里index.html的内容。
; e$ T/ }6 \: `+ r) V, S
( u/ _3 q6 Y5 R. O7 `  m$ h+ v+ s) ~' V& b# g! R( I) Q
三、301重定向怎么进行URL标准化设置?
+ y& _! V, x5 d  t2 d1 N经常会碰到这样的情况,其他网站链接你的站点时,会用下面的链接:
3 R0 C/ O2 o0 v7 Q/ K, g9 vwww.qiuqiufa.com
  b: C" ?5 W! S: q! O* p' Qqiuqiufa.com/
3 B* I+ Y& R, I: a+ Rwww.qiuqiufa.com/index.html% E1 u- e! |' G
qiuqiufa.com/index.php
8 d1 c9 O- x5 X4 F而这样导致:你站点主域名的pr值分散到其他几个URLs了。
: H% c# v: D5 C6 S如果你用301重定向把其他三个URL转到
# \% V, e* t# `# h# Lqiuqiufa.com$ u1 X/ c; l  c( V
PR也就集中在主域名:www.qiuqiufa.com 了。4 J0 m5 F2 x6 M8 j6 e1 M& ~
301重定向具体办法:' k0 Y. f$ J8 P& P
设置.htaccess文件(只适用于linux系统,并需要虚拟主机支持。)  z* e; L2 o9 {6 n% Y" ?
使访问qiuqiufa.com/的时候就会自动转到www.qiuqiufa.com8 A+ W3 \5 C) G, D5 g, l
在.htaccess文件里写上以下代码即可。0 {3 ?/ G1 s2 T& j' S# Q1 _5 V
RewriteEngine on
( G0 R  |( H3 {: o8 NRewriteCond %{http_host} ^mydomain.com [NC]3 T% w/ h) E6 [* C# I4 E
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]& Q" A: X6 l' }- w" W
注意:URL标准化的301重定向(以上代码)需要写在其他URL-rewrite代码之前。
* Q4 `! m( P1 d/ L. `& ]
# t: O: z9 D: c5 y/ I6 c5 }
! I( T% c" j  a' ^四、最全301重定向详细教程3 {6 u* F) K( m6 W. q; m
最近两天找了很多301重定向的教程,也研究了很久,最终找出最适合自己的教程,效果还有待验证,茂名网站优化会继续跟踪报道的,结果出来了会第一时间告诉各位。
* t' M/ I+ I9 M3 @4 d* k( I. w在这里首先告诉大家的是什么是301重定向,可以去看看301重定向SEO问答:http://www.qiuqiufa.com/ask/question.php?id=22,里面简单的说了一下, 关于301转向和网址绝对化问题,大家可以去阅读下茂名SEO之前写的文章:DEDE如何实现网站绝对地址 是写关于网址绝对化规范化的。$ H( W& h' w4 [* b* f
为什么要做网址转向?" A1 _) M- [8 g. c% k8 |& Z
当然,我也试过其他的方法,很简单,我只是在网站首页的head标签内,添加这么一行: <link rel=”canonical” href=” http://www.qiuqiufa.com/ask/就没问题了! 目前只针对与谷歌有用,百度暂时没用,不过没关系,相信下一次更新之后,问题就自然解决了。
5 Z: g5 E& ~, `* \4 K其实,最好的方法是在空间下做301重定向:
% c; M& ]3 q- P. j' X' c3 x, v方法1.在Linux+Apache虚拟主机下301重定向代码, v. @+ {6 e( _2 R1 ?* k0 N& J' [  ]5 n$ O
在本地建个txt文本,复制以下代码,保存上传到空间根目录,然后改名.htaccess ,就ok!
, |! o) Y4 V8 g1 ?, |! D% s$ HrewriteEngine on& x8 j) s! l4 v- j3 `. L/ V
rewriteCond %{HTTP_HOST} ^zmoneyw.cn [NC]
5 r& Q% ]) ~, o/ Z' m& v& yrewriteRule ^(.*)$ http://www.qiuqiufa.com/$1 [R=301,L]6 v6 o) t3 ~; \( Y. s% D) k

3 }/ A5 k: ]+ P5 Y% a方法2.在windows+IIS虚拟主机下301重定向代码" \/ ~4 I" p# `6 s( t; s" ~' J
建个httpd.ini的文件,用记事本打开复制以下代码,上传到空间根目录即可。
. B- I$ ]: ], u6 I% D[ISAPI_Rewrite]
7 G4 x. h  g; X8 R' l/ MCacheClockRate 3600
$ D1 W/ ]0 M+ @, T/ F9 M- }6 FRepeatLimit 32
6 t5 E- I9 t/ f4 ], W: ]4 |7 k8 V, ZRewriteCond Host: ^zmoneyw.cn$
  I& M+ x  d+ U- Y- e0 H+ ^5 \* aRewriteRule (.*) http://www.qiuqiufa.com$1 [I,R]
* B1 E* }+ C6 c- |: P: f# a2 k4 H' a! W" M! A* T
春风班长:这是ASP 301重定向  ?3 M4 ?9 E4 T, x1 x6 @
<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”936″%>( V3 ?* V0 `; \/ K
<%
! C7 W8 ~0 q1 A- ]Response.Status=”301 Moved Permanently”- V7 F7 E$ S  i+ s' U. \
Response.AddHeader “Location”,”http://www.sjz-banzheng.com/index.html  J: o& g. _8 \5 G
Response.End' P) S9 g) p/ M( b/ ]; A+ `' ?! |
%>& G7 K1 Y. @5 b8 o3 b* d
如下,这是一个apache的301重定向方式。如果是其他服务器,请自行百度或者google,301重定向怎么做; N2 l6 e/ R  B

7 G) U0 |3 A) r" z( D<IfModule mod_rewrite.c>
6 P) p, U% A9 t( X7 y2 yRewriteEngine On! T; ?- u: L0 `( K
RewriteCond %{http_host} ^baidu.com [NC], n0 ?7 R- D! a. k2 Z
RewriteRule ^(.*)$ http://www.baidu.com/$1 [L,R=301]
8 M& ~9 l& ?8 ]$ C8 t</IfModule>' {0 w* R3 ?# X

5 j/ |, u2 E4 G其他语言下的301重定向:
" g0 p% }, `- n1、Unix/Linux+Apache主机,在.htaccess- b! G# J8 E  i* W  y' P+ S( z
文件中增加301转向指令,采用 mod_rewrite 技术,如:PHP代码
5 q+ Q' [8 I* t! t4 l# B3 xOptions +FollowSymLinks8 x  {0 Q: V) A! y
RewriteEngine on8 ?+ a; x; P0 E1 V0 e! h9 H
RewriteCond %{HTTP_HOST} ^www.qiuqiufa.com [NC]
8 h4 i; l( E" U  X1 C" @  Q+ ERewriteRule ^(.*)$ http://piaoyi.org/$1 [L,R=301]
& s: N" K* Y% l! s, D% b1 }8 T, T- r# _' {9 j
2、Window+IIS主机,在服务器软件的系统管理员配置中设置,方法:! \4 I6 S' N0 I7 k6 Q, J; y
打开Internet信息服务管理器,在欲重定向的网页或目录上按右键,选中“重定向到URL”,在对话框中输入目标页面的地址,记得选中“资源的永久重定向”->“应用” 。
3 s/ x9 F: S# A: f+ b" f# m: s% I7 d' O
3、用PHP/ASP .NET实现301转向(HTML无法做301转向),方法如下:3 W5 ]1 N# V  \  L0 y8 Q# F
1)用PHP实现/ v8 u2 x" l! |1 P# f
PHP代码' E5 l2 @; a& A( d8 Y
<? Header( “HTTP/1.1 301 Moved Permanently” );
% }  u' A9 n* r/ r+ oHeader( “Location: http://qiuqiufa.com” );?>
* |/ L- K6 b# z8 c
" q  _) @7 f7 y2 Y* c7 ?2)用ASP.NET实现4 c+ [; _0 t$ N" N* X
ASP/Visual Basic代码- s. P* h" f$ I& O
<script runat=”server”>
/ S+ f& d* }3 K. o& yprivate void Page_Load(object sender, System.EventArgs e)2 w0 J% i$ I: x5 D; ?1 o+ y" w* V
{
8 p' b  Z9 h) oResponse.Status = “301 Moved Permanently”;7 _0 i* q6 u$ D0 i! Z; o
Response.AddHeader(“Location”,”http://qiuqiufa.com”);
5 z, U/ h  J& y4 J4 U" P% @}% S+ \' A1 T( j$ v& B
</script>* ?5 V' r9 j+ t( {
1 w0 a. c% s' k1 X  }  A/ b6 \
ASP语言下,我们需要在默认首页,如index.asp顶部最上方加入以下代码:
( o3 B8 L8 a9 Y# c! F/ @4 x<%) @. i- |6 m( r. ~. U
Dim dm,sn
5 F6 q! R( C7 d1 r- r% E+ Ddm=Request.ServerVariables(“Server_name”) ‘获取域名/ t2 F( d0 t7 ?
‘这里的3是指www的长度
* q6 B5 R( d" ]% i# W. {1 A" yif left(dm,3)<>”www” then4 @" [: d* I3 [$ u+ U$ t9 l
Response.Status=”301 Moved Permanently”+ S! u8 ]4 h* I/ j. ^9 m
Response.AddHeader “Location”, “http://www.qiuqiufa.com$ C( e5 M( A% h0 u* C! L
Response.End3 r% f, h& w6 z  K& x) X& y
end if8 D# ~2 `* ]' O
%>1 j9 ^# d( {; ^# q; {7 Y
5 a! y. K6 G, F( t  p5 }9 [4 D' }

; J/ E' y+ b2 V# R6 K) W3 M
5 ?0 G! y2 c+ A4 X& K还有另外一个牛人的方法,不过信宜SEO没有试过,方法如下:
# y' T/ k6 ]8 n) h, e2 j  J1、编辑根目录下的index.php,在顶部加入以下代码:<?php include(“301.inc.php”); //301 Redirect ?>' }4 X- ?, f/ T: S
2、新建一个 301.inc.php 文件,里面加入以下代码:
2 a# s, S0 S. a' y<?php
5 m( ^6 l4 {: G' W, S) ?$ |$the_host = $_SERVER['HTTP_HOST'];" L9 n( {3 e% C7 L
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ”;
: u& T  a8 P1 Q# E1 J2 zif($the_host !== ‘www.diannao8.com.cn’)9 f: N  |# |% K  \9 V- r
{' j! X4 p  C+ m3 _4 A& N
header(‘HTTP/1.1 301 Moved Permanently’);
( P: N/ |% ]- U, |) i8 eheader(‘Location: http://www.qiuqiufa.com);
, P1 ~* H0 n, p1 v}
# S2 m- n2 f& e1 B
4 O7 {- B6 w: x?>
: r- `9 r2 y& I" W- `我们知道,我们一般网站的首页有以下几种:
% @& S( _; ]3 v* F! H$ fhttp://qiuqiufa.com6 s! R2 v9 h$ \& F
http://www.qiuqiufa.com
" N  H( ]" n( z9 {1 j% F3 khttp://qiuqiufa.com/index.html
5 X3 T& u+ J) yhttp://www.qiuqiufa.com/index.php
/ G" R/ M3 J7 Y! O- H* `9 ?, q9 y0 v) j; ~" u/ p5 H8 D9 ]
当然,以上各点,这些形式的网站网址,如果在搜索引擎已经启用了这些形式,页面权重,都会分散到这几个网址上,但是,我们有一个网站,高州SEO想要的是把各个网址权重集中到一个网址上,比如作为http://qiuqiufa.com,让这些分散的网页权重,全部集中http://www.qiuqiufa.com,有必要做301永久重定向。下面是以我网站为例,下面是我操作的过程l( T3 Y- R" U$ O7 Y, }5 J* b

# m1 x3 H# t, ]) p5 p! K5 I% L. {- H+ h

  g% `" E* I/ e5 |" p) E
; m/ V, K. H7 {' E4 R) M$ F这个代码只适应于网站首页的301重定向,如果网站已经被收录,或存在大量的非首页外链,要全部定向过来,那就无能为力了。更合适的方法是使用.htaccess来定向,简单快捷,不过高州SEO不懂这个,在此,高州网站优化将PHP网站301重定向方法完全放出,希望能帮到新人,如果有不足之处,也请高手指出,不胜感激。
2 I0 Z% N  z0 c9 r& H一、建立一个301.inc.php(文件名自取)
* m  {0 K$ L* d, Z2 i<?php: O! _8 F8 {. ]7 I9 E
$the_host = $_SERVER['HTTP_HOST'];//取得进入所输入的域名
0 h6 W4 \, E9 B+ n$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ”;//判断地址后面部分
  m7 e1 U* M4 N& Y3 [' u' c& Z0 _if($the_host !== ‘qiuqiufa.com’)//这是我要以前的域名地址
0 K* c0 j4 C0 J; z{( o8 [: Y# x1 R7 e" Y" b
header(‘HTTP/1.1 301 Moved Permanently’);//发出301头部$ ]% \+ C4 S% W8 P
header(‘Location: http://www.qiuqiufa.com’.$request_uri);//跳转到我的新域名地址
$ ], k; m( a; G2 i) r0 x$ j}9 T: M- C/ l4 f" b- T' ~
?>+ s/ k- j) A- [1 @* \  f# Q

/ d5 V& D- Q/ ~" g其中if($the_host !== ‘www.qiuqiufa.com’)中的“!==”是不完全等于的意思,也可以用“!=”不等于,这样,就可以将以前的域名,包括qiuqiufa.com、www.***.com以及新域名中我qiuqiufa.com全部重定向到www.qiuqiufa.com
% `5 q) m9 c* z. |( e+ P6 I. M8 ?% U
2 ^* y- ?# P  c, T) e; O二、在网页文件中调用301.inc.php& i5 A2 u, y. ?$ y
<?php include(“301.inc.php”); //301重定向 ?>/ X6 b4 G" `1 ]) u
将这个代码放到你所有网页的最前面。! c$ a4 B* J! V% B9 q

( t" F2 t; F2 k& i, j7 ^            
网站简介

球球发,是一家 Discuz! 商业插件、风格模板、网站源码、 Discuz!运营维护技术等于一体的交流分享网站,全站95%的资源都是免费下载,对于资源我们是每天更新,每个亲测资源最新最全---球球发(如果我们有侵犯了您权益的资源请联系我们删除