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

如何做301重定向跳转

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

690

主题

704

帖子

3万

积分

董事

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

积分
31818
     紫钻仅向指定用户开放  
发表于 19-4-1 14:11:06 | 显示全部楼层 |阅读模式
                 一、如何做301? 301重定向方法大全
; F4 o' Z4 q& L% \/ e9 ]我们在做URL网址标准化时经常要用到301重定向,这里给大家整理了网上的一些301重定向方法,希望对大家有用。  m! n4 b. z! m, w8 s; h
1.apache服务器在.htaccess文件中增加301重定向指令6 g5 S. Q5 @& Y+ D$ F2 X
采用“mod_rewrite”技术,形如:- A6 I) O* r: Z/ I1 S* O
RewriteEngine on: l8 r+ ~: U/ x; p) F
RewriteRule ^(.*)$ http://www.qiuqiufa.com$1 [R=301,L]. X: I0 a+ P. J# a- _; X* K
2.适用于使用Unix网络服务器的用户
# B) h# C/ s  h# P$ c/ D# o9 A通过此指令通知搜索引擎的蜘蛛你的站点文件不在此地址下。这是较为常用的办法。" C! e8 |1 J+ v; x/ Z+ v) j9 y" i
形如:Redirect 301 / http://www.qiuqiufa.com
5 Y) C- d- n- V3.绑定/本地DNS* G3 [2 ~7 z2 l8 @6 B
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。; B8 u# }1 O( \) W5 m% E
DNS服务器的设置8 q; d; ^2 {" P+ O2 S( m5 Y
若要将blog.williamlong.info指向www.qiuqiufa.com,则只需在DNS服务中应增加一个别名记录,可写成:blog IN CNAME www.qiuqiufa.com/ ?" ?2 N. u/ r6 A. V+ f' \2 Y
如需配置大量的虚拟域名,则可写成:* IN CNAME www.qiuqiufa.com.
9 l" G" @9 j% w4 c这样就可将所有未设置的以williamlong.info结尾的记录全部重定向到www.qiuqiufa.com上。: ]4 Y" e$ Z5 a9 F% H
4.在服务器软件的系统管理员配置区完成301重定向6 o* A/ ^8 V$ x# \1 G+ X
适用于使用Window网络服务器的用户
/ b. L4 z9 t2 G+ e( Y5.用ASP/PHP实现301重定向:, \+ y% Y' K% _5 ~$ h$ S
ASP:
" H4 x. H7 U4 ?- @Response.Status=”301 Moved Permanently”
$ f* @: s: X3 m% s; ^$ B- yResponse.AddHeader “Location”,”http://www.qiuqiufa.com1 \# `, H8 \7 S5 W- h) \
Response.End
0 s0 x+ z7 Q3 i  PPHP:( {9 d8 h' w* w8 t$ G/ ?7 o! w
header(“HTTP/1.1 301 Moved Permanently”);
0 d# Z+ t& X$ n' d5 C7 _; _header(“Location:http://www.qiuqiufa.com”);
/ J0 H2 o( V2 v, l" fexit();/ y4 y; k( @& q/ p
说明:把代码加到相关页面就可以了。
; ]& C, A- C. w; g1 Z简单点评下:对于服务器用户,使用.htaccess最方便。但是特别是国内大部分网民都是使用虚拟主机,这时候可以用第五种办法:用ASP/PHP实现301重定向。大家在使用的时候把我的域名换成你就可以了。' z2 w6 m  M9 ~9 X6 [: e9 U
7 z3 n3 m. P* K9 k
+ s5 b* w# |1 F% k5 X# I2 S8 I% y
二、IIS服务器下做301永久重定向设置方法
# U' T* m. ~- V以前也没怎么关注301重定向,第一因为没有网站要重定向,第二对于不带www的域名我都是用的转发到带www的域名。不过一场风波之后,很多服务商已经不提供转发服务了,虽说易名现在还可以享用到免费的转发服务,但是却不能不带www的转发到带www的同时进行MX记录解析,这对于需要MX解析的朋友也是一大烦恼。
' v7 p' l4 D0 `& ]而且有些域名在国外,转发更是用不了,也只能进行301永久重定向了,不然搜索引擎是把不带www的站和带www的站分开对待的,只是我们习惯于用带www的域名罢了。
: L' n/ L/ t6 V- ], f- Q# O在网络上看了些教程,再根据自己的实践,也终于搞定了IIS服务器上的301永久重定向设置问题。实现方法如下:
0 S8 z1 a: @' c0 k4 l1.新建一个站点,对应目录如E:wwwroot301web。该目录下只需要1个文件,即index.html或者加个404.htm。绑定要跳转的域名,如图:. e: z, L0 V& a" `- B
; y5 X* s2 H. s. J  C# I$ B
/ o# y- \& R+ K/ }! a9 S
2.在IIS中选中刚才我们建立的站点,右键,属性,主目录,选择重定向到,输入网址如:http://www.xxxx.com,同时注意选中下面的资源的永久重定向选项。如下图:
. ~7 ~7 ^1 ~/ y" u. d
9 H, Q1 V$ i. y2 x/ u, d1 Y; v
' T3 }8 m1 Q# P2 C
+ a5 h; l0 C& G" S) k' K9 H3.到此,我们已经完成了将xxxx.com这个域名301重定向到www.xxxx.com的工作。
2 {3 |/ t% e' @注意问题:2 R. d2 u1 b2 G# S9 Z- I
“上面输入准确的 URL(X)”这个选项建议不要选。
+ u; B0 z* ?$ {) y  Y不选的结果是:) ?. i8 r% S, L. |
当输入xxxx.com转到了www.xxxx.com
3 M# H$ U* P- a6 c$ `1 S当输入xxxx.com/sanwen/suibi/时,转到了www.xxxx.com/sanwen/suibi/- K! c% e1 |" ]' p
选上的结果是:
" t. Y, X8 k8 w! C4 j# v7 A" C当你输入xxxx.com或者xxxx.com/sanwen/suibi/都会转到www.xxxx.com
% L' _) O) O! u. i* z$ l好了,如果只是想把不带www的转到带www的或者其他没有用过的域名转到正在使用的域名,这样就可以了。但是如果你要的域名已经做过网站,想要把权重传递给新网站,可以参考下面这个方法:+ `4 O- s! L5 L
第一步同上,主要是第二步,如图:
/ T% h% l) p; O# M& z  k3 |- r% c! ~3 _8 V

- Z8 ~. c3 |4 H" k- L8 ~注意红色字体的部分,在重定向到地址的后面多了$S$Q字符,即写成了http://www.xxxx.com$S$Q。“上面输入准确的 URL(X)”这个选项也打了勾。
0 c, E* d7 ~: \8 t对于$S$Q字符,这里解释一下:" p5 x$ X! L6 }7 c0 W# H/ t/ m
$S 将请求的URL 的后缀传递给新的URL。后缀是用重定向的URL 代替之后,初始URL 中所保留的部分。( S8 s+ t$ n# ]* ^  U% p
如果未设置 EXACT_DESTINATION 标志,则结果目标URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。$ |! R/ `. m2 w/ l* h6 D' h8 d
$Q 将初始URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号(?)。" f: ], N: \, A$ i
如果不加上$S$Q字符的话,内页的301都会跳转到首页,加上$S$Q字符的目的就是内页也能准确的跳转到新域名的对应内页。
% A1 g4 b' m- b0 [& |) ]; ~好了,这样就完成了301永久重定向的设置,设置好之后最好能测试下是否返回的是301值,推荐个网址:http://www.seoconsultants.com/tools/headers
  d) t* D- w3 W百度对301的反应并不像想象中那么慢,第二天就收录了xxxx.com这个页面,快照最新。当然,快照的内容是www.xxxx.com的内容,而不是301web里index.html的内容。: v, J: V* J5 u6 G. o* [* K1 p

+ s6 c! t8 j5 C9 {7 o5 |6 @6 b4 d" j: c. i/ P4 v$ Y% o' Y
三、301重定向怎么进行URL标准化设置?
$ j' j7 Y/ g6 t: t3 H经常会碰到这样的情况,其他网站链接你的站点时,会用下面的链接:4 M% s% {6 ~' w4 M, C. T
www.qiuqiufa.com
+ M' t+ }0 W7 }" p  ^: |/ D# |qiuqiufa.com/
: A. ?- t+ s% f3 zwww.qiuqiufa.com/index.html2 Y9 C: `/ ~8 T. F* Z7 O9 @9 w. `
qiuqiufa.com/index.php
5 P! A- _( g6 w: ?. Y2 P6 M而这样导致:你站点主域名的pr值分散到其他几个URLs了。
  u9 R/ `: A' o+ P5 ^$ L如果你用301重定向把其他三个URL转到1 [0 [. v( |( r! w
qiuqiufa.com$ @. \8 `7 w( w5 a4 [
PR也就集中在主域名:www.qiuqiufa.com 了。
* i/ D  l3 D4 E5 {) a" E7 |. z301重定向具体办法:
& p4 s2 @% A5 k; b! i设置.htaccess文件(只适用于linux系统,并需要虚拟主机支持。); \) ]5 G+ z  C9 z8 B
使访问qiuqiufa.com/的时候就会自动转到www.qiuqiufa.com
  G+ U$ h# v1 @; b* U! G" X7 N3 z" P在.htaccess文件里写上以下代码即可。
8 t5 \) m! [5 L4 e& h9 t+ QRewriteEngine on
) a8 F4 h  g( s3 ?5 o; O( `+ PRewriteCond %{http_host} ^mydomain.com [NC]1 g/ H( x. f, P; Z! K4 Y+ a
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
# u  n( K) ]: t' |/ d注意:URL标准化的301重定向(以上代码)需要写在其他URL-rewrite代码之前。, \& Q  V% {+ E. |+ {1 f# O+ s
6 I1 H3 U  Q2 O( S
  D7 x+ Y" L; r. n. ^' l
四、最全301重定向详细教程
& y* R' c/ ]( ^. y4 k. |9 l1 X' {最近两天找了很多301重定向的教程,也研究了很久,最终找出最适合自己的教程,效果还有待验证,茂名网站优化会继续跟踪报道的,结果出来了会第一时间告诉各位。
* P/ d% E- a8 W1 e在这里首先告诉大家的是什么是301重定向,可以去看看301重定向SEO问答:http://www.qiuqiufa.com/ask/question.php?id=22,里面简单的说了一下, 关于301转向和网址绝对化问题,大家可以去阅读下茂名SEO之前写的文章:DEDE如何实现网站绝对地址 是写关于网址绝对化规范化的。3 W/ p; P3 p2 _* |4 p% [
为什么要做网址转向?
  K2 U7 L$ _4 z- W( N/ i$ d+ Y当然,我也试过其他的方法,很简单,我只是在网站首页的head标签内,添加这么一行: <link rel=”canonical” href=” http://www.qiuqiufa.com/ask/就没问题了! 目前只针对与谷歌有用,百度暂时没用,不过没关系,相信下一次更新之后,问题就自然解决了。
, r2 v9 V! @, L. x# u; D其实,最好的方法是在空间下做301重定向:
! M9 h" E0 B: h方法1.在Linux+Apache虚拟主机下301重定向代码0 M& n! M& a1 d1 Q+ u
在本地建个txt文本,复制以下代码,保存上传到空间根目录,然后改名.htaccess ,就ok!
" Q; |# g3 p6 Y: T+ H  QrewriteEngine on0 ^7 g' D+ `2 @9 S0 J" o
rewriteCond %{HTTP_HOST} ^zmoneyw.cn [NC]
# x; a) T+ [. Y0 X+ y! RrewriteRule ^(.*)$ http://www.qiuqiufa.com/$1 [R=301,L]3 C* ?6 e1 P# _7 b9 k

' h3 Q  `4 M  B8 y. }/ E5 Q方法2.在windows+IIS虚拟主机下301重定向代码. g2 I) k7 E& i/ _# e% c" ~
建个httpd.ini的文件,用记事本打开复制以下代码,上传到空间根目录即可。$ C" p( ?( E" F  L: q& d( i# ~& D( o
[ISAPI_Rewrite]
0 v0 t* v  ?+ I9 ]; VCacheClockRate 3600
( g3 t8 x; z6 Q6 bRepeatLimit 32
+ q6 `1 r8 @& `8 S% R# E! Q3 ~RewriteCond Host: ^zmoneyw.cn$. ]( `6 K' y9 i! p, v5 |  ~
RewriteRule (.*) http://www.qiuqiufa.com$1 [I,R]
+ K4 N1 V. f4 ^
. |4 C1 p) M6 x& u/ K+ x; P6 \春风班长:这是ASP 301重定向+ ?0 I" c# h, b
<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”936″%>
- H5 Q; Y7 I: g4 Q<%. D9 T  L( Y- y2 B4 I# [
Response.Status=”301 Moved Permanently”9 {  Q( j6 K) N4 z9 H  s4 C
Response.AddHeader “Location”,”http://www.sjz-banzheng.com/index.html
% g( R, ]. ?; X  {7 H( H- O1 UResponse.End) u# h, ?: i6 L, h/ ^
%>
/ Y+ U2 m5 I: o3 ]如下,这是一个apache的301重定向方式。如果是其他服务器,请自行百度或者google,301重定向怎么做
+ X. i1 @' B' x" g4 D- f  b$ O
1 Q" d- m6 ]2 }# ~8 B1 ?, y<IfModule mod_rewrite.c>
: W- f* c' Z9 \7 [' NRewriteEngine On& H# ~4 l  R1 _
RewriteCond %{http_host} ^baidu.com [NC]: B$ Q& x0 f  t- `' d+ [$ W: n7 p
RewriteRule ^(.*)$ http://www.baidu.com/$1 [L,R=301]
( B4 \2 n2 `* V+ U( O0 g</IfModule>
4 G6 t; X0 _7 |* E, ?/ [6 R, U8 T
, Y. H5 g# ]" }* m; i- y: W1 X其他语言下的301重定向:$ S+ B5 [: P* b
1、Unix/Linux+Apache主机,在.htaccess
9 u. n1 K  f, q: q# X$ S文件中增加301转向指令,采用 mod_rewrite 技术,如:PHP代码
- g: _6 n2 }" H* ~. a  ?0 c& G7 u3 `. UOptions +FollowSymLinks2 A' ]4 S1 G9 Y+ i$ ]% v4 D
RewriteEngine on1 q6 w; b8 F$ |0 I6 ?+ F- i3 w
RewriteCond %{HTTP_HOST} ^www.qiuqiufa.com [NC]6 l- x7 X& W) @. z
RewriteRule ^(.*)$ http://piaoyi.org/$1 [L,R=301]
' O$ ?8 K3 A. P- [$ W; Y
& U6 H5 e/ v0 `* i2、Window+IIS主机,在服务器软件的系统管理员配置中设置,方法:
9 W5 _; `/ h1 r7 R  C: x  A% m  Q打开Internet信息服务管理器,在欲重定向的网页或目录上按右键,选中“重定向到URL”,在对话框中输入目标页面的地址,记得选中“资源的永久重定向”->“应用” 。
$ a& u0 `( r' w6 {# j; J
. F& J7 A- p/ ?" ]# O' {/ A! l  @* E3、用PHP/ASP .NET实现301转向(HTML无法做301转向),方法如下:
) H! l; `. D: Y* P: k7 c  f7 G1)用PHP实现
. e, r% G. ?5 i! Q3 E! O% l2 mPHP代码& a6 _/ c; o; a( u& t
<? Header( “HTTP/1.1 301 Moved Permanently” );: m$ }* i, p  S7 g  B$ X
Header( “Location: http://qiuqiufa.com” );?>
& g6 j2 S1 r. Z& T7 C# ^
. ~* ?, P1 j# k7 n: J  w7 W2)用ASP.NET实现
' z/ H: U6 n4 r$ O( N2 HASP/Visual Basic代码% |( a9 N# q' O
<script runat=”server”>
0 @: m8 _: @- g) ?- F6 Cprivate void Page_Load(object sender, System.EventArgs e)
$ b$ Y' H1 @3 P, u1 o" G: V7 R{
" Z& D( H- V; E5 l" xResponse.Status = “301 Moved Permanently”;
/ [  V7 b0 \1 X/ c( S' P8 ?Response.AddHeader(“Location”,”http://qiuqiufa.com”);
! @+ U4 a5 i1 s; }' `7 b+ v4 e}: ?* }& l/ ?0 R* \' S; ~# ~0 V
</script>) x( m3 \( O/ I% K, a- V4 T* I' e

2 ^7 _+ @; L& ~ASP语言下,我们需要在默认首页,如index.asp顶部最上方加入以下代码:2 B: P6 g7 X# \' Q
<%
. I" A: N9 d0 u8 D; `Dim dm,sn
9 N! d  i  D8 E: s9 sdm=Request.ServerVariables(“Server_name”) ‘获取域名( O4 J1 n  ]* o, j6 S
‘这里的3是指www的长度
: w+ Q$ t3 x  w- Jif left(dm,3)<>”www” then
4 `6 A+ R/ }+ ^4 g/ {Response.Status=”301 Moved Permanently”' j: D2 P8 C7 \" W6 a+ G/ H. \
Response.AddHeader “Location”, “http://www.qiuqiufa.com- c1 N, ~- x. F# X
Response.End* Z4 S7 k( p' E  q
end if$ \" a3 h8 `; Y8 o1 z* F- g" k
%>
8 v0 U4 j7 t, _% a! M. k# Z& A: p9 T1 c" u$ Y3 i

7 d/ h: ?4 u6 x- ?9 }9 t6 E, ]( o
还有另外一个牛人的方法,不过信宜SEO没有试过,方法如下:
4 ?1 f- ^0 r+ l: a6 n* W$ O1、编辑根目录下的index.php,在顶部加入以下代码:<?php include(“301.inc.php”); //301 Redirect ?>
$ A1 d& D+ y, ^9 a2、新建一个 301.inc.php 文件,里面加入以下代码:5 O3 x$ T, h4 w! v, R3 q
<?php
# e* ^1 B/ l, I3 P$the_host = $_SERVER['HTTP_HOST'];0 s# F5 u  s1 X& @1 n+ p7 t  p
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ”;& J3 I2 A7 K$ j0 C" d/ h- D4 [& c
if($the_host !== ‘www.diannao8.com.cn’)
6 ]: p9 |" W7 C3 O6 D% V{
. |3 V8 q" I* _: v7 B) iheader(‘HTTP/1.1 301 Moved Permanently’);3 M' G% O6 N/ T: u' X
header(‘Location: http://www.qiuqiufa.com);* O: Z' W& D2 E# i* l
}
- o& M" e0 v$ n  G$ b
, [( |. F" ]2 I6 D6 [0 Q+ Y?>
' p# V0 Y. j+ C- m% s0 h我们知道,我们一般网站的首页有以下几种:2 {9 P" o* v3 _3 D
http://qiuqiufa.com
6 A1 ]  q6 q9 u! ghttp://www.qiuqiufa.com
' Z% v1 z7 R. N$ k9 c, x8 _http://qiuqiufa.com/index.html
/ M/ S! I- z) Whttp://www.qiuqiufa.com/index.php
* _8 e, ?1 n: p4 l4 K- [* z- @
9 D3 K6 a9 S! S3 K1 B. ]当然,以上各点,这些形式的网站网址,如果在搜索引擎已经启用了这些形式,页面权重,都会分散到这几个网址上,但是,我们有一个网站,高州SEO想要的是把各个网址权重集中到一个网址上,比如作为http://qiuqiufa.com,让这些分散的网页权重,全部集中http://www.qiuqiufa.com,有必要做301永久重定向。下面是以我网站为例,下面是我操作的过程l0 w7 p% E1 N3 M" f6 w) B

0 y7 I; k+ S- L5 l+ a
9 R* {5 A0 z) K+ V
  g4 k6 I/ ^0 b& N) F4 H, y% p) C/ A( n" Z
这个代码只适应于网站首页的301重定向,如果网站已经被收录,或存在大量的非首页外链,要全部定向过来,那就无能为力了。更合适的方法是使用.htaccess来定向,简单快捷,不过高州SEO不懂这个,在此,高州网站优化将PHP网站301重定向方法完全放出,希望能帮到新人,如果有不足之处,也请高手指出,不胜感激。: C, L3 B  w( W/ X! l
一、建立一个301.inc.php(文件名自取)
: @7 ~' V% W, ~* k3 P3 [0 I- J. }<?php# w7 y! J+ z$ p6 y
$the_host = $_SERVER['HTTP_HOST'];//取得进入所输入的域名
* I. Y+ ?: T+ g$ g$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ”;//判断地址后面部分
1 H0 R& }8 ?; U* v- p! fif($the_host !== ‘qiuqiufa.com’)//这是我要以前的域名地址; w2 X, O6 P. u" y' \) ^/ I
{3 t+ \9 I" F2 h7 ~  t
header(‘HTTP/1.1 301 Moved Permanently’);//发出301头部# N* r+ g; z& O6 P8 e) |
header(‘Location: http://www.qiuqiufa.com’.$request_uri);//跳转到我的新域名地址$ |! E! y' w) ]& o) y5 A3 q1 J# C
}
1 H+ `8 w5 G% y& @5 c?>
- x, ^& M( |6 H8 d$ Q
: d) {5 m8 g5 L- M其中if($the_host !== ‘www.qiuqiufa.com’)中的“!==”是不完全等于的意思,也可以用“!=”不等于,这样,就可以将以前的域名,包括qiuqiufa.com、www.***.com以及新域名中我qiuqiufa.com全部重定向到www.qiuqiufa.com! e/ [# y& n: t" j* r8 O
$ g% B$ P  [: X- G; s( A
二、在网页文件中调用301.inc.php
+ k# c6 s/ j$ D3 X  N<?php include(“301.inc.php”); //301重定向 ?>$ l& G9 w! L8 T2 a- l: W/ ?
将这个代码放到你所有网页的最前面。
* B# O1 x8 k0 E: m% O7 N" Y9 V , G# B4 e/ x- _* n  N5 K
            

qiuqiufa.com

网站简介

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