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

如何做301重定向跳转

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

763

主题

777

帖子

3万

积分

董事

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

积分
32946
发表于 19-4-1 14:11:06 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
                 一、如何做301? 301重定向方法大全3 A8 q/ Y; r/ N( k& L
我们在做URL网址标准化时经常要用到301重定向,这里给大家整理了网上的一些301重定向方法,希望对大家有用。8 [' q" R# I8 o! I
1.apache服务器在.htaccess文件中增加301重定向指令1 m& f+ `2 u. y, L! f8 T
采用“mod_rewrite”技术,形如:3 N7 k4 W& ~0 |9 Z: O, q
RewriteEngine on
1 y. f& c. a- F1 A0 O: D, BRewriteRule ^(.*)$ http://www.qiuqiufa.com$1 [R=301,L]1 m" s5 o& _' i7 x* ~3 `
2.适用于使用Unix网络服务器的用户
; l3 q+ z1 s' }' u通过此指令通知搜索引擎的蜘蛛你的站点文件不在此地址下。这是较为常用的办法。
; {3 g9 o$ y/ W7 a. s; g' w形如:Redirect 301 / http://www.qiuqiufa.com
+ `! j4 v5 u0 S- P3.绑定/本地DNS
* j& d3 R# E: a. W9 J如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。$ [. n  Z8 B- m) i, @+ p, v4 U
DNS服务器的设置
9 N# u6 x* G- g; Q3 Y若要将blog.williamlong.info指向www.qiuqiufa.com,则只需在DNS服务中应增加一个别名记录,可写成:blog IN CNAME www.qiuqiufa.com5 a5 ^7 f% y$ ?- Q
如需配置大量的虚拟域名,则可写成:* IN CNAME www.qiuqiufa.com.9 ^, ]* Q; b1 D) x; i. U
这样就可将所有未设置的以williamlong.info结尾的记录全部重定向到www.qiuqiufa.com上。1 W$ \; J3 }/ o3 ]% H: A* e
4.在服务器软件的系统管理员配置区完成301重定向
8 s) O, y' F" z9 ^3 m" `/ |( C适用于使用Window网络服务器的用户
# L$ }0 a& i. G3 r% F3 D9 F; x5.用ASP/PHP实现301重定向:
9 M- K  i9 i. y9 dASP:
4 n" Q) d, @/ z4 h- ^Response.Status=”301 Moved Permanently”
' }' a1 s9 V4 c$ v! qResponse.AddHeader “Location”,”http://www.qiuqiufa.com
& R9 e+ k8 A8 F1 @* ]Response.End
& w+ j4 ~7 c$ H6 f2 p& HPHP:/ y# G5 v4 X5 \; `& L) T
header(“HTTP/1.1 301 Moved Permanently”);
1 Q, x8 X' A7 V0 ?header(“Location:http://www.qiuqiufa.com”);3 r5 I% L1 z0 O
exit();
: E2 S% W5 s  u  l说明:把代码加到相关页面就可以了。4 O) L9 j0 Y8 ^* L) G
简单点评下:对于服务器用户,使用.htaccess最方便。但是特别是国内大部分网民都是使用虚拟主机,这时候可以用第五种办法:用ASP/PHP实现301重定向。大家在使用的时候把我的域名换成你就可以了。
1 ~% Q1 G$ s& [6 T7 C& Z7 ~4 t" A- X0 @" L& }
% m4 u6 d) V5 ^: y1 Q/ ]
二、IIS服务器下做301永久重定向设置方法& n. O$ K6 @+ l4 g3 d) L
以前也没怎么关注301重定向,第一因为没有网站要重定向,第二对于不带www的域名我都是用的转发到带www的域名。不过一场风波之后,很多服务商已经不提供转发服务了,虽说易名现在还可以享用到免费的转发服务,但是却不能不带www的转发到带www的同时进行MX记录解析,这对于需要MX解析的朋友也是一大烦恼。
0 _' X% a: t+ V9 s. y7 O而且有些域名在国外,转发更是用不了,也只能进行301永久重定向了,不然搜索引擎是把不带www的站和带www的站分开对待的,只是我们习惯于用带www的域名罢了。
& v- K# _) _% M$ X/ B在网络上看了些教程,再根据自己的实践,也终于搞定了IIS服务器上的301永久重定向设置问题。实现方法如下:
# h1 R& F! Z8 o4 f+ P! _2 _. E3 z1.新建一个站点,对应目录如E:wwwroot301web。该目录下只需要1个文件,即index.html或者加个404.htm。绑定要跳转的域名,如图:( G3 x# b6 X3 k: `6 u; R

4 F9 L. J; B. H& i2 x% d; A& ?8 ?' b3 A: G6 D
2.在IIS中选中刚才我们建立的站点,右键,属性,主目录,选择重定向到,输入网址如:http://www.xxxx.com,同时注意选中下面的资源的永久重定向选项。如下图:) x. H6 B% Z- a+ x" M5 E
$ m) P% w  u: c& ?1 }3 y
' z7 I! y& H# @
9 p, A8 y- A' p6 n; A
3.到此,我们已经完成了将xxxx.com这个域名301重定向到www.xxxx.com的工作。
. q# L4 ~" S) c' X! M注意问题:, p8 a- `; j( ]% d, y3 f5 R; `8 X) }: s
“上面输入准确的 URL(X)”这个选项建议不要选。3 `( I! K! ?, `8 O
不选的结果是:
4 q7 c* {0 |3 [1 @- d& I当输入xxxx.com转到了www.xxxx.com
6 z2 W) y! ^, ]. G& f当输入xxxx.com/sanwen/suibi/时,转到了www.xxxx.com/sanwen/suibi/$ V: v: ^% K3 Z0 Q5 o8 T
选上的结果是:
6 h. B" K5 S6 j0 e1 f, u3 O当你输入xxxx.com或者xxxx.com/sanwen/suibi/都会转到www.xxxx.com
2 L0 M: v4 K8 y" U- z7 g( s好了,如果只是想把不带www的转到带www的或者其他没有用过的域名转到正在使用的域名,这样就可以了。但是如果你要的域名已经做过网站,想要把权重传递给新网站,可以参考下面这个方法:
) @' _$ ?  @0 C2 M# o! |% ^# [第一步同上,主要是第二步,如图:
9 X  ~! v: n4 f" D( y& Y5 g( R7 V: f# x- \+ n8 O. Q
& n, Q5 F  r  G1 I
注意红色字体的部分,在重定向到地址的后面多了$S$Q字符,即写成了http://www.xxxx.com$S$Q。“上面输入准确的 URL(X)”这个选项也打了勾。. a# t( K+ [0 S+ w: a7 I8 ~- Q
对于$S$Q字符,这里解释一下:
* P& C; T5 o0 v0 t- ?  _5 E4 N$S 将请求的URL 的后缀传递给新的URL。后缀是用重定向的URL 代替之后,初始URL 中所保留的部分。
) A4 P7 S, z+ M如果未设置 EXACT_DESTINATION 标志,则结果目标URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。1 ~, T+ ~2 ^/ {( I( B+ O
$Q 将初始URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号(?)。
% r( S8 ]: c' r' {$ [  S3 K5 p如果不加上$S$Q字符的话,内页的301都会跳转到首页,加上$S$Q字符的目的就是内页也能准确的跳转到新域名的对应内页。
# W+ i6 ]- F1 t9 E3 B5 |+ {好了,这样就完成了301永久重定向的设置,设置好之后最好能测试下是否返回的是301值,推荐个网址:http://www.seoconsultants.com/tools/headers
, `7 E9 U( ~9 o& Q- E百度对301的反应并不像想象中那么慢,第二天就收录了xxxx.com这个页面,快照最新。当然,快照的内容是www.xxxx.com的内容,而不是301web里index.html的内容。& W' T& G9 l1 u) `+ m7 L
+ [2 t! a; K+ X
# y: L4 ?. h; I" Y+ ^
三、301重定向怎么进行URL标准化设置?" Z; K+ [2 v; t% C+ y
经常会碰到这样的情况,其他网站链接你的站点时,会用下面的链接:
  @! Y2 v6 J8 |1 {, Z" H/ I1 Iwww.qiuqiufa.com
- u: I" a9 U5 H7 N6 {* }  {qiuqiufa.com/$ i5 t. P' a2 m+ k9 A1 a9 y5 k+ a
www.qiuqiufa.com/index.html) e1 S+ p% V" A2 k$ E
qiuqiufa.com/index.php
( `# I2 o2 C" A4 P5 m2 s而这样导致:你站点主域名的pr值分散到其他几个URLs了。0 P3 ]; Q9 T" k3 J8 {3 {' r  [9 h+ r
如果你用301重定向把其他三个URL转到/ _1 ], o0 T0 p( j
qiuqiufa.com( S8 V+ `2 q+ a( d, ~
PR也就集中在主域名:www.qiuqiufa.com 了。
. n! s6 L, B, B) _0 _301重定向具体办法:& X+ f  A/ j- B* q4 }1 ^
设置.htaccess文件(只适用于linux系统,并需要虚拟主机支持。)
' G1 Z/ J9 ^% c& X1 u3 A2 P使访问qiuqiufa.com/的时候就会自动转到www.qiuqiufa.com2 ]  t3 l+ v6 w& C2 r
在.htaccess文件里写上以下代码即可。
1 ^! T; T  G9 J" R4 {+ ^$ y$ E! b' _RewriteEngine on  O* W' e- X9 w
RewriteCond %{http_host} ^mydomain.com [NC]
& F2 f- ]2 m, N6 S) i6 K2 e( oRewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
9 F$ w) D7 ]/ v  w! Q! g# ?7 l注意:URL标准化的301重定向(以上代码)需要写在其他URL-rewrite代码之前。
! @: J& I9 f) K
7 G/ e* L9 }' ^9 p/ k  }& L2 c3 T. ~& b: R+ R- l" P* m- s
四、最全301重定向详细教程! f2 B# S7 x& D  Q1 P/ g5 U. h
最近两天找了很多301重定向的教程,也研究了很久,最终找出最适合自己的教程,效果还有待验证,茂名网站优化会继续跟踪报道的,结果出来了会第一时间告诉各位。8 H! F. x' J$ F
在这里首先告诉大家的是什么是301重定向,可以去看看301重定向SEO问答:http://www.qiuqiufa.com/ask/question.php?id=22,里面简单的说了一下, 关于301转向和网址绝对化问题,大家可以去阅读下茂名SEO之前写的文章:DEDE如何实现网站绝对地址 是写关于网址绝对化规范化的。
* f, {; \# y" w6 K5 O' y为什么要做网址转向?
5 v7 z& C9 V/ |8 N当然,我也试过其他的方法,很简单,我只是在网站首页的head标签内,添加这么一行: <link rel=”canonical” href=” http://www.qiuqiufa.com/ask/就没问题了! 目前只针对与谷歌有用,百度暂时没用,不过没关系,相信下一次更新之后,问题就自然解决了。  H  S/ W0 A) Y8 N8 E+ Q0 O
其实,最好的方法是在空间下做301重定向:
' c  ]7 I' v: K方法1.在Linux+Apache虚拟主机下301重定向代码
; V) w2 S1 F4 o. L* Y. G在本地建个txt文本,复制以下代码,保存上传到空间根目录,然后改名.htaccess ,就ok!6 i) u, {9 J) c( u  d
rewriteEngine on! V: q3 y! \/ `- |
rewriteCond %{HTTP_HOST} ^zmoneyw.cn [NC]
$ M: {3 }  {; U; LrewriteRule ^(.*)$ http://www.qiuqiufa.com/$1 [R=301,L]
9 ~' J' Y& p4 Y3 g) d+ N
- g* e! M) B" y8 U1 q+ w方法2.在windows+IIS虚拟主机下301重定向代码
. ^- d  I- N2 j4 N! ~建个httpd.ini的文件,用记事本打开复制以下代码,上传到空间根目录即可。2 a2 g1 A- C& {" v
[ISAPI_Rewrite]
, V( F% c/ D6 W1 X5 p* ~/ w: _$ tCacheClockRate 3600
+ K+ g$ X1 W4 Y& ]4 X5 iRepeatLimit 32+ l  y- ^# D/ }* i3 M
RewriteCond Host: ^zmoneyw.cn$; l3 p6 m% j: a! L, g1 T9 b
RewriteRule (.*) http://www.qiuqiufa.com$1 [I,R]
7 H  Z2 M9 I- p4 b5 o" F, c0 s6 e9 I5 _$ s' T& i: P* P9 |
春风班长:这是ASP 301重定向. l, E# V7 ^( Z9 d$ q4 n6 P) {& z4 Q& S
<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”936″%>
  y& u4 q1 G4 l+ d4 I<%
  ~$ _6 b! N! e* d/ v6 T6 ~Response.Status=”301 Moved Permanently”  x, P0 l+ w) t% d$ |5 c' J
Response.AddHeader “Location”,”http://www.sjz-banzheng.com/index.html+ E! U9 _% o( [! \1 z
Response.End
/ q* S1 z. L, v% `0 V0 f%>
6 |( K4 u9 C5 o2 |; }  Y) ^如下,这是一个apache的301重定向方式。如果是其他服务器,请自行百度或者google,301重定向怎么做
8 T. I( P; G5 T: |" C) ~# h6 M* B: h. c
<IfModule mod_rewrite.c>5 a: e" @& R9 K4 k5 u' n, x% D+ A
RewriteEngine On
  f2 d1 J3 d( ~RewriteCond %{http_host} ^baidu.com [NC]
6 d; H* m: T& ^& t) y9 ZRewriteRule ^(.*)$ http://www.baidu.com/$1 [L,R=301]9 ]" ^2 d) }; x! p% ], T
</IfModule>! I, q+ N' O' _( e

& Z# Z# r% c0 N( z3 N+ I5 L其他语言下的301重定向:
; g) S9 E! {% \" X& ?; I  y1、Unix/Linux+Apache主机,在.htaccess
6 [  {0 H# U; w; `文件中增加301转向指令,采用 mod_rewrite 技术,如:PHP代码" X8 ?2 e4 j6 G+ p- Y0 G6 L9 p
Options +FollowSymLinks  C8 p% n4 O. O' W
RewriteEngine on
- J1 l% J$ o+ k3 d/ D3 X& t: M5 mRewriteCond %{HTTP_HOST} ^www.qiuqiufa.com [NC]8 K. g- _- ]5 I
RewriteRule ^(.*)$ http://piaoyi.org/$1 [L,R=301]$ P7 M' T; d1 N) f( G

4 A  X( O/ D! O  q& s2、Window+IIS主机,在服务器软件的系统管理员配置中设置,方法:
# r5 D; E2 p1 T4 |. b9 w打开Internet信息服务管理器,在欲重定向的网页或目录上按右键,选中“重定向到URL”,在对话框中输入目标页面的地址,记得选中“资源的永久重定向”->“应用” 。
! j4 w, Y2 S  y" Z  q0 [- ~' h2 a. ^( D4 w3 |7 J  f! }
3、用PHP/ASP .NET实现301转向(HTML无法做301转向),方法如下:
. `9 B8 ?; n1 x+ z# @1)用PHP实现- E+ K0 Z: S( }6 I) s/ C1 x
PHP代码% ^+ ~9 N0 Y0 h: @
<? Header( “HTTP/1.1 301 Moved Permanently” );& o5 J2 P( @: E( p
Header( “Location: http://qiuqiufa.com” );?>
/ K9 _1 K' ~+ u" v" F3 J, `
0 l& }' w6 y9 Z2 b: k2)用ASP.NET实现7 Y& y% H$ H- g$ q& K
ASP/Visual Basic代码
' C/ u- o0 E. b+ l% ^" M, k% |- a1 ^<script runat=”server”>, |2 q. R* ~0 m( p4 X8 P
private void Page_Load(object sender, System.EventArgs e)
# [5 F% ]. b6 k; p8 O: \3 Y; P- N: I! F{
" @  U! u% g( g! t- RResponse.Status = “301 Moved Permanently”;) F' N$ z: r) {; e! Y9 z
Response.AddHeader(“Location”,”http://qiuqiufa.com”);
6 k3 r3 U6 w5 B. N6 I}
3 {8 ^7 s5 E2 a( |+ c$ j# h</script>
3 e9 t  D2 X1 j1 u2 E9 ]
) l) b0 g5 i" F3 u; D" uASP语言下,我们需要在默认首页,如index.asp顶部最上方加入以下代码:
5 p$ W1 N* v7 W5 M<%
% U7 S) f6 F2 V- j  A+ @, r5 ?Dim dm,sn+ q4 V% P+ O7 f% a' M
dm=Request.ServerVariables(“Server_name”) ‘获取域名
. o( x5 P' f& w  C; x% Q‘这里的3是指www的长度5 y% _+ t; e* B
if left(dm,3)<>”www” then) ]1 F; |0 s; \& `, ?
Response.Status=”301 Moved Permanently”
" W! ^/ \! ^- l( K2 lResponse.AddHeader “Location”, “http://www.qiuqiufa.com
' }% Q/ O0 x- d. M8 M8 vResponse.End0 G7 v/ P) p3 W7 I  h. f3 N$ w2 y6 _
end if+ Q, L% n& r3 i* ]# m& [
%>: i& F6 z( m- d& T

% u5 H% y7 x" Y* a9 G7 \
/ a2 ~" o" s, \/ L. V, c& |
% Q# X# o6 w: y5 G还有另外一个牛人的方法,不过信宜SEO没有试过,方法如下:
: `; U. H# C& W, K  B/ r/ t& ^7 t1、编辑根目录下的index.php,在顶部加入以下代码:<?php include(“301.inc.php”); //301 Redirect ?>, O, l" [$ u+ d& c2 R
2、新建一个 301.inc.php 文件,里面加入以下代码:4 \8 G5 }' M# e$ `& l' C2 {9 P- K: v
<?php& H7 M0 r4 b, G  W8 O) U
$the_host = $_SERVER['HTTP_HOST'];
' P2 x( N* ~" g. Q$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ”;
  e8 h$ ?. m" ^. ]3 E9 J# _2 tif($the_host !== ‘www.diannao8.com.cn’)' d- z* Q1 M& Z2 b
{4 P& q* t) k9 A. x& z: C% k7 h
header(‘HTTP/1.1 301 Moved Permanently’);. @! d6 r" y) o
header(‘Location: http://www.qiuqiufa.com);( G; O# Q" z6 u, B' K3 r1 P3 W9 n
}+ y" O& m* {# T; ]5 _+ x1 f2 t6 @6 A
; U9 l* M2 y4 F# @2 l/ u, y
?>
, C8 [7 Z) \) s- P; a我们知道,我们一般网站的首页有以下几种:6 E$ E$ I- _/ v" c
http://qiuqiufa.com" @9 u, V3 y0 i* h$ W& F! y6 s1 \
http://www.qiuqiufa.com
. O$ I* \$ r5 E7 Y" d0 `http://qiuqiufa.com/index.html- }. u% g1 c  N, L# V& x
http://www.qiuqiufa.com/index.php9 c9 W9 l8 r% w5 P, E

- ?3 \. D1 c  Z8 h5 V' c- [' v当然,以上各点,这些形式的网站网址,如果在搜索引擎已经启用了这些形式,页面权重,都会分散到这几个网址上,但是,我们有一个网站,高州SEO想要的是把各个网址权重集中到一个网址上,比如作为http://qiuqiufa.com,让这些分散的网页权重,全部集中http://www.qiuqiufa.com,有必要做301永久重定向。下面是以我网站为例,下面是我操作的过程l8 m7 W" n9 Z) p; H' k# O7 O

8 G" {! E# C: Q' T- J0 ]/ \6 F2 v1 d7 `% S" {

6 |& {3 I$ O: A( D1 E0 x; [4 n; w# N
这个代码只适应于网站首页的301重定向,如果网站已经被收录,或存在大量的非首页外链,要全部定向过来,那就无能为力了。更合适的方法是使用.htaccess来定向,简单快捷,不过高州SEO不懂这个,在此,高州网站优化将PHP网站301重定向方法完全放出,希望能帮到新人,如果有不足之处,也请高手指出,不胜感激。( Q1 |7 j2 o/ f1 n& J1 v
一、建立一个301.inc.php(文件名自取), ]) f; A7 o* [! q/ T
<?php6 [+ E" F2 c+ ]9 `
$the_host = $_SERVER['HTTP_HOST'];//取得进入所输入的域名
. T  P/ y9 H4 F) G5 G0 [4 \0 t6 m$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ”;//判断地址后面部分; m, d. h# L5 s( D* \% Y# _
if($the_host !== ‘qiuqiufa.com’)//这是我要以前的域名地址
0 e: ?" {7 Q% [) h6 s8 C+ d+ v{
* H* G6 g% w+ _( H% ]( Zheader(‘HTTP/1.1 301 Moved Permanently’);//发出301头部; L. \! W! z# B- [" u3 k
header(‘Location: http://www.qiuqiufa.com’.$request_uri);//跳转到我的新域名地址4 L7 W2 Y4 e# M' X% `
}0 k/ V- Q# M1 r* a: x! E
?>
0 P2 u) \2 E$ y/ M2 p9 S" g
) |! ?5 @6 U+ v2 q* U/ @其中if($the_host !== ‘www.qiuqiufa.com’)中的“!==”是不完全等于的意思,也可以用“!=”不等于,这样,就可以将以前的域名,包括qiuqiufa.com、www.***.com以及新域名中我qiuqiufa.com全部重定向到www.qiuqiufa.com9 O  w0 }$ Z! t5 l% X. N1 }6 F
# C/ U6 V/ ~" n( t0 U7 N
二、在网页文件中调用301.inc.php- k: \" J- F6 E, S; k
<?php include(“301.inc.php”); //301重定向 ?>
5 G) O( N5 C- @2 O将这个代码放到你所有网页的最前面。
- c5 K' c# B0 E ! i8 }# `! ?. E! p# u
            
网站简介

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