当前位置

Drupal中添加大量301重定向页面的批量办法

James Qi 在 2019年5月14日 - 23:47 提交

301重定向

  最近同事在整理电话号码库数据的时候,发现省市区几级数据有很多不规范的地方,造成简称全称重叠、省市区级别错乱等问题,后来找到标准的行政划分名称,在数据库进行了批量替换,但以前存在的页面现在不存在了,会造成大量死链接,需要做301跳转来保存可访问性。

  晚上找了一些办法:

  1. 如果数量少,可以手工在菜单admin/config/search/path/add来添加;
  2. 如果数量太多,还可以用一个模块Path redirect import来批量添加;
  3. 而我采用了另外一种办法:修改了自定义模块,在menu项添加老网址,使用drupal_goto函数跳转到希望的新网址。

  代码片段如下:

function my_module_menu() {
  $items = array();
  ......
  $province_wrong_right = array(
    '上海' => '上海市',
    '云南' => '云南省',
    '内蒙古' => '内蒙古自治区',
    '北京' => '北京市',
    '吉林' => '吉林省',
    '四川' => '四川省',
    '天津' => '天津市',
    '宁夏' => '宁夏回族自治区',
    '安徽' => '安徽省',
    '山东' => '山东省',
    '山西' => '山西省',
    '广东' => '广东省',
    '广西' => '广西壮族自治区',
    '新疆' => '新疆维吾尔自治区',
    '江苏' => '江苏省',
    '江西' => '江西省',
    '河北' => '河北省',
    '河南' => '河南省',
    '浙江' => '浙江省',
    '海南' => '海南省',
    '湖北' => '湖北省',
    '湖南' => '湖南省',
    '甘肃' => '甘肃省',
    '福建' => '福建省',
    '西藏' => '西藏自治区',
    '贵州' => '贵州省',
    '辽宁' => '辽宁省',
    '重庆' => '重庆市',
    '陕西' => '陕西省',
    '青海' => '青海省',
    '黑龙江' => '黑龙江省',
  );
  foreach ($province_wrong_right as $wrong => $right) {
    $items[“province/$wrong“] = array (
      'title'=>'',
      'page callback'=>'redirect_301',
      'page arguments'=>array(“province/$right“),
      'access arguments'=>array('access content'),
    );
  }
  return $items;
}

function redirect_301($path) {
  drupal_goto($path,array(),301);
}

  上面例子做了省份的跳转,后面可以再添加地市、区县,也可以添加从区县跳转地市、地市跳转省份等各种组合。 还有其它drupal站都可以使用这样的办法来做301重定向。

自由标签:

评论

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。