写文章
蜘蛛侠太阳能采购和LED贸易
2015-07-17 10:45

老网站到新网站的301跳转设置

我的新网站勉强算是做好了,老网站还有点流量,想把老网站的流量尽可能的导过来,就用301跳转。

如果是BH WP建站,可以两种选择,cPanel或者编辑.htaccess文件。但是老网站是外包给别人的,访问cPanel是不太可能了,查了一下,幸好老网站还是在Apache Server上跑,就自己做一个.htaccess文件试试吧。(.htaccess是Apache服务器中的一个配置文件,其他服务器是怎么样的就不知道了。)

米课里面是这样说的:

域名B www.domianB.com
301重定向
域名A www.domainA.com

eat-my-ice.com --> www.iyibing.com
www.eat-my-ice.com --> www.iyibing.com

那么.htaccess文件内容如下:
#BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_HOST} ^eat-my-ice.com [NC]
RewriteRule ^(.*)$ http://www.iyibing.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www.eat-my-ice.com [NC]
RewriteRule ^(.*)$ http://www.iyibing.com/$1 [L,R=301]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond % {REQUEST_FILENAME} ! -f
RewriteCond % {REQUEST_FILENAME} ! -d
</IfModule>

# END WordPress

我也确实按照上这个语法自己做了一个.htaccess文件,成功实现了跳转。但是这样有一个问题,就是这是一个整站跳转。就是说除了域名不同,你新老域名所有的URL都需要是一样的。比如我的老网站是www.abclight.com,新网站是www.abc-light.com。像上面这样做了重定向之后,当我访问www.abclight.com,会跳转到www.abc-light.com,没问题。但是当我访问www.abclight.com/t8-led.html的时候,它会跳转到www.abc-light.com/t8-led.html。但是其实我新老网站的URL不是一样的,我需要跳转到www.abc-light.com/t8-led-tube,。我需要的是由我来指定哪些页面跳转,哪些页面不跳转。所以像上面这样的跳转设置,基本除了首页,访问老站的所有URL,都会跳转到新站的404页面。如何破?

百度了一下,原来301跳转还是有很多种语法的,大概5种,具体如下:

1.重定向domain.com到www.domain.com
这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.domain.com到domain.com也是出于同样的原因,只是形式不同。
打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

2.重定向www.domain.com到domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

3.重定向olddomain.com到www.newdomain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]

4.重定向olddomain.com to newdomain.com
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]

5.重定向domain.com/file/file.php 到 otherdomain.com/otherfile/other.php
RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^file/file.php$ http://www.otherdomain.com/otherfile/other.php [R=301,L]

显然,我需要的是最后一种,从一个不同的域名的一个网页跳转到另一个域名,具有不同URL的网页,是指定的一对一关系,而不是自发的批量的一对一关系。需要注意的是,包括首页,也一定要用第5种语法,如果其他页面用第5种,首页还是用前面的语法,也是白费精力。

那就先拿首页和其中一个字页面试试,.htaccess文件内容如下:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.abclight.com$
RewriteRule ^$ http://www.abc-light.com [R=301,L]

RewriteCond %{HTTP_HOST} ^www.abclight.com$
RewriteRule ^LED-tube.html$ http://www.abc-light.com/product/led-tube [R=301,L]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

用FTP把.htaccess文件上传到老网站的根目录下,再去站长之家查询跳转情况(http://tool.chinaz.com/pagestatus/),返回代码301,说明成功实现了跳转。去浏览器访问,当我访问老站首页,跳转到新站首页,当我访问老站地址www.abclight.com/LED-tube.html,跳转到http://www.abc-light.com/product/led-tube。再访问一个没有设置跳转的老站地址www.abclight.com/LED-panel.html,还是访问老站,因为我还没给它设置跳转。初步实现目标。

这里还有一个小插曲,就是我新站的地址其实是http://www.abc-light.com/product/led-tube/ (不管实际访问中浏览器地址栏显示的,还是sitemap文件中看到的,都是这样),看出来差别没,比我在.htaccess里面放的URL多了一个尾巴,字符“/”。刚开始我原原本本把这个地方写进.htaccess文件,没有实现跳转,删除这个字符,就可以了。

接下来的工作就是去把你想要的对应关系,都写到.htaccess文件里面。我的老站有接近200个页面,新站只有100出头,实际对应关系我只建立了90来个。

这个时候有人会问,我页面比较多,这样一个个写岂不是很浪费时间。这里教大家一个小技巧,因为.htaccess文件里面的指令都是很有规律的,所以我们可以用EXCEL表格中的公式来写。比如下面这个图,把老网站的sitemap拿出来,新网站的sitemap拿出来,列成下面这样的对应关系。在指令那一栏一,用一个合并的公式,就生产了完整的指令,再往下一拖,所有对应关系的指令就都出来了。当然,如果你sitemap里面的URL地址不是那么好辨别是什么内容,就只有自己一个个访问页面对找对应关系了。我这个新老网站的URL,从地址就能看出是什么内容来,所以可以这么搞,不需要一个个去访问页面。

[attach]5619[/attach]

再把指令那一栏的内容全部复制到WORD文档里面,格式稍微有点乱,没关系,我们来替换一下,^p就是换行的意思。如下图:


[attach]5620[/attach]

选择全部替换,内容就成下面这样了:


[attach]5621[/attach]

如果你觉得不够美观,想给每条指令之间加个空行,自己再去替换吧。

完了之后再把所有指令都复制到.htaccess文件的RewriteEngine On和RewriteBase /中间吧,FTP上传网站根目录,跳转即刻生效。

设置好几天了,刚才又试了下,没问题,需要跳转的跳转,不需要的还是访问老网站。

这里顺便说一点题外话,我们日常工作中,凡是那些简单的,需要不断重复的工作,大部分是可以用更省事省时一点的办法的,就看你找没找到。比如现在要处理1000条数据,你可以选择一条一条去处理,也许要花5个小时,你也可以选择用2,3个小时去研究下是不是有更的办法,如果找对办法,1000条数据,也许1分钟,甚至10秒钟就处理完了,而且今后遇到这样的情况,就更简单了。也有这样的情况,笨办法需要2个小时,为了找一个快捷点的办法,需要研究3个小时甚至更多,你会觉得还多花了1个小时,这样的情况,除非你能保证这辈子不再遇到,我觉得花3个小时还是值得的。

以上内容,如有不当,欢迎指正,讨论。
关注作者,看更多TA的好文章 个人展示
蜘蛛侠太阳能采购和LED贸易 谁在评论里提醒下这位作者,懒得连名片都没填写。
举报
收藏
转发
0/500
添加表情
评论
评论 (15)
最近
最早
3天2夜学会建站

蜘蛛侠太阳能采购和LED贸易

目前做两件事: 1. 欧洲太阳能公司采购,采购一切太阳能相关产品。电池,太阳能板,电视,冰箱,风扇等等。 2. LED贸易,室内/户外照明类产品。 擅长销售,互联网营销,采购。

向TA提问
置顶时间 :

设置帖子类型

普通
新闻
活动
修改

圈内转发

0/104

分享至微信

复制链接

举报

请选择举报理由

留联系方式
垃圾广告
人身攻击
侵权抄袭
违法信息
举报

确认要删除自己的评论吗?

取消 确定

确认要删除自己的文章吗?

取消 确定
提问
设置提问积分
当前可用积分:
-
+
20
50
100
200
偷看

积分偷看

10积分
我的积分(可用积分)
确认偷看

问题已关注

答主回复后,系统将通知你

不再提示