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

如何做301重定向跳转

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

761

主题

775

帖子

3万

积分

董事

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

积分
32853
发表于 19-4-1 14:11:06 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
                 一、如何做301? 301重定向方法大全
; @% w/ ~- t: t; e* T: }; U我们在做URL网址标准化时经常要用到301重定向,这里给大家整理了网上的一些301重定向方法,希望对大家有用。
. V5 C( x' j5 s: u* B+ E8 @- s1.apache服务器在.htaccess文件中增加301重定向指令
9 e& J/ m6 d( j; O. i6 D( y8 }采用“mod_rewrite”技术,形如:
" w3 n, |- f  n$ u; [. URewriteEngine on
. ]$ [, ^, t7 C! hRewriteRule ^(.*)$ http://www.qiuqiufa.com$1 [R=301,L]
% e8 e& x: ?6 q' n% L2.适用于使用Unix网络服务器的用户0 V( G4 F3 c* i) C& V; }
通过此指令通知搜索引擎的蜘蛛你的站点文件不在此地址下。这是较为常用的办法。
, I3 E  q+ ^; ~形如:Redirect 301 / http://www.qiuqiufa.com+ C6 M6 b% F4 m* I
3.绑定/本地DNS
/ |' V6 c& z; I, Q, b5 |如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
$ \; h1 \; R- GDNS服务器的设置
! i" o. l* |# z2 k2 t/ g9 p7 f% k若要将blog.williamlong.info指向www.qiuqiufa.com,则只需在DNS服务中应增加一个别名记录,可写成:blog IN CNAME www.qiuqiufa.com
- ~% B4 f0 d3 K4 W8 {! f& \如需配置大量的虚拟域名,则可写成:* IN CNAME www.qiuqiufa.com.- L% z5 N  s% `6 l3 s' ?
这样就可将所有未设置的以williamlong.info结尾的记录全部重定向到www.qiuqiufa.com上。
! S/ N: f7 x6 e! _) C/ z4.在服务器软件的系统管理员配置区完成301重定向5 ~" ~7 @* U4 N# V
适用于使用Window网络服务器的用户
8 l8 f. g# [8 W* w5 [- ]5.用ASP/PHP实现301重定向:
5 y% D: b' t) X" V0 C7 ?$ I) RASP:+ ~  R3 |9 e1 l5 F- a- N5 M. m4 y0 ~
Response.Status=”301 Moved Permanently”
! Y# m$ D: ~0 U. ^: a6 M7 |) K) Z. SResponse.AddHeader “Location”,”http://www.qiuqiufa.com9 p6 z+ d+ T: m' C- v  i& f
Response.End
( c" x7 F" {; \PHP:
+ R6 F4 C* d7 u* Q  e7 V9 }$ [header(“HTTP/1.1 301 Moved Permanently”);
) t6 M; l9 F7 f5 Fheader(“Location:http://www.qiuqiufa.com”);0 D  D' f1 M: Q) }/ ]3 A
exit();3 h+ E' F& `3 K& R; ]
说明:把代码加到相关页面就可以了。
( D. P8 T+ y( U  i7 x; M' b简单点评下:对于服务器用户,使用.htaccess最方便。但是特别是国内大部分网民都是使用虚拟主机,这时候可以用第五种办法:用ASP/PHP实现301重定向。大家在使用的时候把我的域名换成你就可以了。
9 _# ^1 u4 a# R" H) n5 J1 W) ]/ ~9 g% S: d- i
6 R; ~( s) O  t$ O" ^& Q  p" ?
二、IIS服务器下做301永久重定向设置方法
$ U- n! S' \# S$ ]1 w" s以前也没怎么关注301重定向,第一因为没有网站要重定向,第二对于不带www的域名我都是用的转发到带www的域名。不过一场风波之后,很多服务商已经不提供转发服务了,虽说易名现在还可以享用到免费的转发服务,但是却不能不带www的转发到带www的同时进行MX记录解析,这对于需要MX解析的朋友也是一大烦恼。
0 Q1 i/ J8 f1 Q: a; J1 X+ T1 |/ r. K" G而且有些域名在国外,转发更是用不了,也只能进行301永久重定向了,不然搜索引擎是把不带www的站和带www的站分开对待的,只是我们习惯于用带www的域名罢了。
  d$ \1 M$ J8 _+ O. ~( V在网络上看了些教程,再根据自己的实践,也终于搞定了IIS服务器上的301永久重定向设置问题。实现方法如下:8 y; C6 Z- U, j( g
1.新建一个站点,对应目录如E:wwwroot301web。该目录下只需要1个文件,即index.html或者加个404.htm。绑定要跳转的域名,如图:$ @% o3 N8 j% m0 D/ S

& P$ ]; H( K5 C
/ D! e9 g- K9 [$ \2.在IIS中选中刚才我们建立的站点,右键,属性,主目录,选择重定向到,输入网址如:http://www.xxxx.com,同时注意选中下面的资源的永久重定向选项。如下图:& j3 y! \& A! t( T. q

$ \% b2 |9 J( I8 ]! E5 H& j0 v5 [* h0 {) O0 V. e

: p7 I1 O" u& l, W7 W/ D- a, V3.到此,我们已经完成了将xxxx.com这个域名301重定向到www.xxxx.com的工作。
1 _1 V3 l) C6 Z3 t9 D- |0 H* F注意问题:9 K( U, |. o$ g# d8 C
“上面输入准确的 URL(X)”这个选项建议不要选。
! m5 V  ^# L# Y$ P不选的结果是:
. {5 g0 p) }% x/ q/ l9 Y当输入xxxx.com转到了www.xxxx.com& l4 ~: @, M+ n( n$ H9 T! ]( z+ j
当输入xxxx.com/sanwen/suibi/时,转到了www.xxxx.com/sanwen/suibi/7 ?  W! a) Z- i
选上的结果是:4 c$ u- E' Z2 K& ~
当你输入xxxx.com或者xxxx.com/sanwen/suibi/都会转到www.xxxx.com2 K; J( K  d1 p
好了,如果只是想把不带www的转到带www的或者其他没有用过的域名转到正在使用的域名,这样就可以了。但是如果你要的域名已经做过网站,想要把权重传递给新网站,可以参考下面这个方法:* [9 w+ a) @1 ~1 Y8 Z  {6 Q& D4 q
第一步同上,主要是第二步,如图:
6 v1 c+ m1 _6 x2 j1 s3 A9 L% P/ ~/ r" E! K' `
! `, ^7 R9 F: v
注意红色字体的部分,在重定向到地址的后面多了$S$Q字符,即写成了http://www.xxxx.com$S$Q。“上面输入准确的 URL(X)”这个选项也打了勾。9 H( |6 x1 x- E1 |. m3 p4 b
对于$S$Q字符,这里解释一下:
, U* C1 C' ?( D, [) E$S 将请求的URL 的后缀传递给新的URL。后缀是用重定向的URL 代替之后,初始URL 中所保留的部分。& N! C+ H  Y9 O
如果未设置 EXACT_DESTINATION 标志,则结果目标URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。
) S" X  e0 q. a" k6 c& u* y$Q 将初始URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号(?)。( T# [4 b2 I. u# {- r4 @) V
如果不加上$S$Q字符的话,内页的301都会跳转到首页,加上$S$Q字符的目的就是内页也能准确的跳转到新域名的对应内页。% q8 t2 U9 Q4 r' y
好了,这样就完成了301永久重定向的设置,设置好之后最好能测试下是否返回的是301值,推荐个网址:http://www.seoconsultants.com/tools/headers0 t* p3 K8 E/ o' N3 S$ }; f" |
百度对301的反应并不像想象中那么慢,第二天就收录了xxxx.com这个页面,快照最新。当然,快照的内容是www.xxxx.com的内容,而不是301web里index.html的内容。
" o: ?  v+ d8 {
7 N8 z- `: K7 E( f( m: P" ?' X* M* o. x8 h: Q; m. K. L7 l& ~( _4 w
三、301重定向怎么进行URL标准化设置?
; K4 W0 B4 o) w8 ^$ p! E3 u6 [经常会碰到这样的情况,其他网站链接你的站点时,会用下面的链接:& ^7 [/ q* F0 Q8 F1 G
www.qiuqiufa.com
: R" W; ^/ @. I. Jqiuqiufa.com/9 C( [  z) {5 [, w! O, y: K/ a
www.qiuqiufa.com/index.html" x  J. {' [5 ~3 L* K7 v
qiuqiufa.com/index.php
3 K" b' I1 n' u, |) j5 P2 B: ], K+ ^而这样导致:你站点主域名的pr值分散到其他几个URLs了。8 {  y/ M  B. o% E6 O' Q, J- n. x
如果你用301重定向把其他三个URL转到
/ f! n/ m& ^9 S: bqiuqiufa.com
- |% j' a) {$ K. I  bPR也就集中在主域名:www.qiuqiufa.com 了。
& Q' K* |' T* M301重定向具体办法:& x  V: N. t1 ^6 K9 C3 P. V2 C- ?
设置.htaccess文件(只适用于linux系统,并需要虚拟主机支持。)
) J* L2 ~% y* y" x3 X使访问qiuqiufa.com/的时候就会自动转到www.qiuqiufa.com: Q$ H6 d6 e) [
在.htaccess文件里写上以下代码即可。' y% A* d7 f8 k
RewriteEngine on/ X. b7 M% [! h5 P* e
RewriteCond %{http_host} ^mydomain.com [NC]
* ?- M4 \: G( w% `, `  dRewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
1 O4 c; n2 l9 h) d# H注意:URL标准化的301重定向(以上代码)需要写在其他URL-rewrite代码之前。0 F. U4 _. r  e5 p; D- I
7 ?) M; D8 m+ H  O

7 I# A6 _- ^2 h5 u四、最全301重定向详细教程, S/ [" ?5 L. k" Z  u7 D
最近两天找了很多301重定向的教程,也研究了很久,最终找出最适合自己的教程,效果还有待验证,茂名网站优化会继续跟踪报道的,结果出来了会第一时间告诉各位。0 Y, ?. a2 a4 ?# k% l% Z0 E" B" M
在这里首先告诉大家的是什么是301重定向,可以去看看301重定向SEO问答:http://www.qiuqiufa.com/ask/question.php?id=22,里面简单的说了一下, 关于301转向和网址绝对化问题,大家可以去阅读下茂名SEO之前写的文章:DEDE如何实现网站绝对地址 是写关于网址绝对化规范化的。
8 G0 c" n7 v9 Y& ^4 }# `+ c为什么要做网址转向?
9 [" l+ D  s; N# ~1 [$ x当然,我也试过其他的方法,很简单,我只是在网站首页的head标签内,添加这么一行: <link rel=”canonical” href=” http://www.qiuqiufa.com/ask/就没问题了! 目前只针对与谷歌有用,百度暂时没用,不过没关系,相信下一次更新之后,问题就自然解决了。2 i$ ?$ }: L" O* [, _
其实,最好的方法是在空间下做301重定向:
3 k- ]7 n9 Q4 P! T- G) M" V方法1.在Linux+Apache虚拟主机下301重定向代码
% C. `9 K& h1 c3 j- `. u在本地建个txt文本,复制以下代码,保存上传到空间根目录,然后改名.htaccess ,就ok!/ s2 D3 v: O* `4 s* L: t( y5 u3 }
rewriteEngine on, d. {. g% Z/ p" I6 |. L
rewriteCond %{HTTP_HOST} ^zmoneyw.cn [NC]! L6 q: ^" r# ]: \0 b! q
rewriteRule ^(.*)$ http://www.qiuqiufa.com/$1 [R=301,L]
5 [0 e: g; I2 n6 b# [8 p# e" N, I) H! ^% d  O% R
方法2.在windows+IIS虚拟主机下301重定向代码; R# d; a% `' g' F- P# k. M8 _
建个httpd.ini的文件,用记事本打开复制以下代码,上传到空间根目录即可。
; J, B+ L# O9 C! F& M9 x[ISAPI_Rewrite]
  D; j! N, I! t; _, G) C) F+ k" ?4 ]CacheClockRate 3600
$ i: D, P  C0 {RepeatLimit 32# w+ j- m! O) Y! d9 s* q5 u& b
RewriteCond Host: ^zmoneyw.cn$
! m4 h  o9 ?- T" tRewriteRule (.*) http://www.qiuqiufa.com$1 [I,R]" _2 I+ l: R7 u" Z

- t5 B% _( I  g1 W8 _. \; K春风班长:这是ASP 301重定向
3 [4 |2 @+ @- u4 t9 x( A$ s1 Y$ c: w<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”936″%>
7 v4 ], B& T/ t; N* E9 `! d# ~5 w<%
: t1 r; ^  C( DResponse.Status=”301 Moved Permanently”/ c1 Z0 h$ K. y8 m" e' ]& q
Response.AddHeader “Location”,”http://www.sjz-banzheng.com/index.html
  W1 ?" ~: h6 K# h# @5 hResponse.End% d3 g( d/ A/ P
%>! }4 u" K% K" {0 N8 h, g* ?
如下,这是一个apache的301重定向方式。如果是其他服务器,请自行百度或者google,301重定向怎么做" @5 V- V; F5 d7 T4 r; S2 K
$ _: m0 P, }  s1 |" t; j: p
<IfModule mod_rewrite.c>7 D2 m" n' {# v* R0 \) ~2 B
RewriteEngine On6 _' I$ Q4 Y; {$ y
RewriteCond %{http_host} ^baidu.com [NC]$ Y/ E$ t; P9 j* V2 o
RewriteRule ^(.*)$ http://www.baidu.com/$1 [L,R=301]; M# `5 N( Y0 \7 b' U8 A
</IfModule>% z" s) u" I. W4 t, W' v+ S
0 N+ H# t' M' b
其他语言下的301重定向:
& ^! W9 y9 {& p4 Y: G' A* ^6 @1、Unix/Linux+Apache主机,在.htaccess
! t& c; k3 w  B1 u6 v文件中增加301转向指令,采用 mod_rewrite 技术,如:PHP代码
% M- \1 I4 ]# \/ h. L" IOptions +FollowSymLinks- E; o6 P4 [9 A* ?. X( e
RewriteEngine on
6 m2 l  P1 ]( u" M7 c5 ?0 nRewriteCond %{HTTP_HOST} ^www.qiuqiufa.com [NC]1 `( B* u) ^) w3 v+ S1 K
RewriteRule ^(.*)$ http://piaoyi.org/$1 [L,R=301]
# N! K' j; p" G5 Z" J% _6 r
: N9 M" }. Q/ O" q$ G4 I2、Window+IIS主机,在服务器软件的系统管理员配置中设置,方法:
7 Z) N+ y" w3 t! d打开Internet信息服务管理器,在欲重定向的网页或目录上按右键,选中“重定向到URL”,在对话框中输入目标页面的地址,记得选中“资源的永久重定向”->“应用” 。% W1 t, c3 D7 _* i9 C, Y9 q" f
( n' ]" w1 d4 q6 G2 P* k- l
3、用PHP/ASP .NET实现301转向(HTML无法做301转向),方法如下:% ^$ {$ F8 W, d( [1 ~( a
1)用PHP实现! K1 t" O' {( f# _9 ~
PHP代码& T9 c" x% [; r
<? Header( “HTTP/1.1 301 Moved Permanently” );
. q* ~2 |3 s9 }8 X( Y- f% P4 t  s* ~* XHeader( “Location: http://qiuqiufa.com” );?>
. G8 H; Z1 ?. v: Z% E5 i8 `- `& s9 X
2)用ASP.NET实现
# `+ Q2 r, D3 w" ]7 [1 VASP/Visual Basic代码2 ]4 _: d5 i& m+ _4 Q. z
<script runat=”server”>1 P9 o3 L: s5 [3 l8 B0 H0 d$ M
private void Page_Load(object sender, System.EventArgs e)6 A& c6 r, A1 ~; P& c; f
{
- e/ N4 R! {: L; BResponse.Status = “301 Moved Permanently”;
7 g4 R7 i: W( R$ T+ Z' u: OResponse.AddHeader(“Location”,”http://qiuqiufa.com”);4 I7 K# }0 H* l* a
}  [  n" D0 K. Z' j( @
</script>
% H: {+ o# }3 ^6 ^% |
8 i1 y+ s' d9 I& P7 v# WASP语言下,我们需要在默认首页,如index.asp顶部最上方加入以下代码:3 ?$ l4 n# \  L- z  D9 m4 F# i
<%- E* i1 h' j6 [' d& C
Dim dm,sn
( J) ?2 I4 s- Q' M5 N- ^3 Odm=Request.ServerVariables(“Server_name”) ‘获取域名
& _* T% Z6 M3 j. E‘这里的3是指www的长度8 f0 @/ R/ ?, m+ j7 j1 G
if left(dm,3)<>”www” then
6 Y2 x% N) T* A; _' |+ _6 N+ v6 dResponse.Status=”301 Moved Permanently”
6 _+ u4 R+ o" C9 x! |& IResponse.AddHeader “Location”, “http://www.qiuqiufa.com- C$ o& \% x/ H, l* y! |
Response.End
! @  C% p8 I, G# ?$ C, {# Fend if
" W4 j! u- S, }0 v0 u+ A) Y%>
- l+ J( m  K7 E* T8 k) C; p5 v( l) Q, @7 D: b6 C' ^
) o7 w" S0 r, ?/ V! _2 S/ S

! G# p( e- p# k还有另外一个牛人的方法,不过信宜SEO没有试过,方法如下:) \* q, I" k8 J+ v2 B" U3 I
1、编辑根目录下的index.php,在顶部加入以下代码:<?php include(“301.inc.php”); //301 Redirect ?>
; |1 B+ y8 p" w0 \- `2、新建一个 301.inc.php 文件,里面加入以下代码:
1 ~/ {5 n! L9 j# U6 a  I6 C<?php' D! m( N3 T) C8 Y$ M- T
$the_host = $_SERVER['HTTP_HOST'];' v( z# t; f/ X6 I: V5 S3 {3 M
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ”;
7 N& g( L) d; n. m, _  Bif($the_host !== ‘www.diannao8.com.cn’)3 Z4 b* c8 {2 x+ R: O. F
{  p0 i: F( G: H7 v" z/ b$ d
header(‘HTTP/1.1 301 Moved Permanently’);
6 M: v+ w# C5 w, theader(‘Location: http://www.qiuqiufa.com);, C- d" T7 _+ u/ R1 \& P
}: u( l+ }" g# K% T: p
5 b  l# c) }) N) i, q7 X6 S: ?$ \. ~
?>' L# h$ M9 s7 L* J: j& z
我们知道,我们一般网站的首页有以下几种:* r/ e/ {3 h) T4 I/ m) U
http://qiuqiufa.com6 j* V: p- n+ r5 ^1 i+ K1 k
http://www.qiuqiufa.com
  C8 _" E. L  Z& t. khttp://qiuqiufa.com/index.html
4 r' a4 U' K8 j" d; S% Q4 t) xhttp://www.qiuqiufa.com/index.php! @8 Y% |) Z' N

" i0 H) A( E2 P当然,以上各点,这些形式的网站网址,如果在搜索引擎已经启用了这些形式,页面权重,都会分散到这几个网址上,但是,我们有一个网站,高州SEO想要的是把各个网址权重集中到一个网址上,比如作为http://qiuqiufa.com,让这些分散的网页权重,全部集中http://www.qiuqiufa.com,有必要做301永久重定向。下面是以我网站为例,下面是我操作的过程l
) u& Q, k( k' x" ?2 I0 o' i0 `( j* [3 B

9 @5 h9 s! u8 d6 v1 q/ Q6 S, l6 ?0 X) I4 }! p9 a, ?3 T
: t# l" M2 M( c6 k5 q; R
这个代码只适应于网站首页的301重定向,如果网站已经被收录,或存在大量的非首页外链,要全部定向过来,那就无能为力了。更合适的方法是使用.htaccess来定向,简单快捷,不过高州SEO不懂这个,在此,高州网站优化将PHP网站301重定向方法完全放出,希望能帮到新人,如果有不足之处,也请高手指出,不胜感激。* r6 R, [( d( b! c4 D2 H
一、建立一个301.inc.php(文件名自取)( n9 e) x) A6 N! A4 B6 ^' a: f/ d
<?php6 J4 U/ i% e% i" P% N5 H
$the_host = $_SERVER['HTTP_HOST'];//取得进入所输入的域名" k- _. I3 c$ m( F# V7 O3 V, k
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ”;//判断地址后面部分
: m9 `6 J: H8 u, Eif($the_host !== ‘qiuqiufa.com’)//这是我要以前的域名地址
% U' x* f, J5 i, b  @2 F{
( q9 B3 E! o! Vheader(‘HTTP/1.1 301 Moved Permanently’);//发出301头部
! L5 o# [4 Q: m0 N: t4 y( B2 h2 jheader(‘Location: http://www.qiuqiufa.com’.$request_uri);//跳转到我的新域名地址  a4 f0 D9 M  ?0 `2 S  o
}# Y; m$ Q: M4 R: V3 h4 Y
?>
6 \- W1 u; N2 _6 F, A; h6 d, o1 ^5 r5 n  d! y$ H
其中if($the_host !== ‘www.qiuqiufa.com’)中的“!==”是不完全等于的意思,也可以用“!=”不等于,这样,就可以将以前的域名,包括qiuqiufa.com、www.***.com以及新域名中我qiuqiufa.com全部重定向到www.qiuqiufa.com5 o: |" v, k3 f: o: a

$ Y) z" F6 x6 Y1 I* W4 q# d二、在网页文件中调用301.inc.php3 |  @& T6 Q1 w8 p8 s4 B' ^. K
<?php include(“301.inc.php”); //301重定向 ?>7 M- e& P+ k# n( A
将这个代码放到你所有网页的最前面。; d9 N5 h, h8 R6 [& f$ T% O! A1 r$ D/ t

3 v, c  w( C! Y# `4 S9 \            
网站简介

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