请选择 进入手机版 | 继续访问电脑版
查看: 72367|回复: 28

[平台工具] 关于改版后怎么将每个页面进行301跳转的方法请教?

[复制链接]
发表于 2015-3-24 11:16:58 | 显示全部楼层 |阅读模式
20金币
本帖最后由 aa2015813 于 2015-3-25 13:38 编辑

问题:关于改版后怎么将每个页面进行301跳转的方法请教。
详情:虽然百度有很多介绍网站改版需要301跳转的教程,但是基本都是介绍不同域名之间的整站301跳转,我事先将百度收录的所有URL记录下来,旧的改版工具可以提交每一条URL变化规则以及正则表达式,我想问现在应该怎样更好的将每一条百度收录的URL进行301跳转,是用htaccess的语法将每个旧的URL跳转到新的URL还是有什么其他的方法呢?
站长继续补充:服务器是VPS,系统是Windows 2003,使用IIS,但是安装了ISAPI_Rewrite,所以可以支持htaceesss。网站域名没变,但是网站改版后URL重新进行了规划,和之前网站的URL规则完全不同,所以无法写什么正则表达式,只能手动记录百度收录的所有URL,然后一条条进行301跳转。
1、改版后的网站如果使用的是PHP程序,有什么能将每一条URL分别301跳转到不同的URL的好方法?
2、改版后的网站如果使用的是JAVA程序,有什么能将每一条URL分别301跳转到不同的URL的好方法?


最佳答案

查看完整内容

在网站运营过程中,经常遇到改版的情况,有时需要修改部分网页的目录结构,这时需要将旧的网页301到新网页。 举个实际的例子。 原来的tag系统网页结构是:tag列表网址——域名/tags/;各个tag网址——域名/tags/tagid/; 改版后的tag系统网页结构:tag列表网址——域名/chanpin/;各个tag网址——域名/chanpin/tag拼音/ 设置301转跳分两步。 第一步:设置伪静态,将旧网址整体转跳到一个php页面 例子中的伪静态规则是这么写的 ...

评分

参与人数 1金币 +1 收起 理由
关键四号3 + 1 冒险岛私服 bbs.mgxsfm.com wm.mgxsfm.com .

查看全部评分

发表于 2015-3-24 11:16:59 | 显示全部楼层
本帖最后由 hanbelt 于 2015-3-25 20:29 编辑

在网站运营过程中,经常遇到改版的情况,有时需要修改部分网页的目录结构,这时需要将旧的网页301到新网页。
举个实际的例子。
原来的tag系统网页结构是:tag列表网址——域名/tags/;各个tag网址——域名/tags/tagid/;
改版后的tag系统网页结构:tag列表网址——域名/chanpin/;各个tag网址——域名/chanpin/tag拼音/

设置301转跳分两步。

第一步:设置伪静态,将旧网址整体转跳到一个php页面


例子中的伪静态规则是这么写的:

  1. RewriteRule ^tags/(.*)/$ tag301.php?tagid=$1
复制代码

这样,就将所有旧页面都跳到了 域名/tag301.php 文件,接下来就通过php获取参数,将旧链接301转跳到新页面了。

第二步、PHP设置

在上面伪静态规则涉及的地方新建一个php文件,此php文件的作用有两个:一是网址转换,利用获取的参数将旧网址转换成新网址;二是实现301转跳。

php代码是这么写的:
  1. function ReturnNewUrl($r){
  2.         //具体代码省略
  3.         return $url;
  4. }
  5. $newurl=ReturnNewUrl($_GET);
  6. header("HTTP/1.1 301 Moved Permanently");
  7. header("location:$nweurl");
  8. exit;
复制代码


以上省略了具体的函数写法,不同情况对应的转换网址函数不同,需要单独编写。
至此,301转换完成。可以通过站长之家的“页面HTTP状态查询”工具查询旧网址状态。

至于其它编码的网站,原理是一样的。

【以上方法由pmume提供,使用帝国cms的站长知道此人的应该比较多】


----------------------

楼主帖子中提到,新旧网址的规则完全是混乱的,这个可能性不大,或许情况比较多,完全没有规则是不可能,总能写个函数将新旧网址对应起来,实在不行,那就手动写一个数组。
  1. $url_r=array(
  2. array("旧网址1","新网址1"),
  3. array("旧网址2","新网址2"),
  4. )
复制代码

通过查找数组,就能找到新网址

点评

说的太好了!  发表于 2016-10-19 09:54
辛苦了  发表于 2015-3-26 09:12
回复

使用道具 举报

发表于 2015-3-24 12:00:54 | 显示全部楼层
配置设置即可。
回复

使用道具 举报

发表于 2015-3-24 13:25:12 | 显示全部楼层
百度站长平台改版功能是否可行呢?没用过 呵呵!
回复

使用道具 举报

发表于 2015-3-24 13:58:02 | 显示全部楼层
同楼主,求解
回复

使用道具 举报

发表于 2015-3-24 14:28:29 | 显示全部楼层
我也遇到过这样的问题,通求答案
回复

使用道具 举报

发表于 2015-3-24 14:48:36 | 显示全部楼层
只能去寻找域名之间的规律~进行设置!如果没有规律可寻找 那么很悲剧的要很大的工作量
回复

使用道具 举报

发表于 2015-3-24 16:28:35 | 显示全部楼层
301跳转肯定会导致站点会有所损失
总的来说,改版用301,是较为常见的方法,也会有所作用
除了301之外,站长工具利用之外
还可以在页面还可以利用好 canonical 标签
回复

使用道具 举报

发表于 2015-3-24 22:08:15 | 显示全部楼层
你用的服务器是什么?iis 还是apache?
回复

使用道具 举报

发表于 2015-3-25 10:00:29 | 显示全部楼层
你好,我是这贴提问者,看了一下回复,感觉自己提问时候没有说清细节,导致回答者很多都是问细节。不知道能否请版主在1楼补充说明一下呢?
服务器是VPS,系统是Windows 2003,使用IIS,但是安装了ISAPI_Rewrite,所以可以支持htaceesss。网站域名没变,但是网站改版后URL重新进行了规划,和之前网站的URL规则完全不同,所以无法写什么正则表达式,只能手动记录百度收录的所有URL,然后一条条进行301跳转。
1、改版后的网站如果使用的是PHP程序,有什么能将每一条URL分别301跳转到不同的URL的好方法?
2、改版后的网站如果使用的是JAVA程序,有什么能将每一条URL分别301跳转到不同的URL的好方法?

点评

OK 我去补充  发表于 2015-3-25 13:37
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|Baidu Inc.

GMT+8, 2021-9-29 05:18 , Processed in 0.253997 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2011 Comsenz Inc.

返回顶部