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

2019年5月15日10:54:30 发表评论

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

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

晚上找了一些办法:

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

代码片段如下:

  1. function my_module_menu() {
  2.   $items = array();
  3.   ......
  4.   $province_wrong_right = array(
  5.     '上海' => '上海市',
  6.     '云南' => '云南省',
  7.     '内蒙古' => '内蒙古自治区',
  8.     '北京' => '北京市',
  9.     '吉林' => '吉林省',
  10.     '四川' => '四川省',
  11.     '天津' => '天津市',
  12.     '宁夏' => '宁夏回族自治区',
  13.     '安徽' => '安徽省',
  14.     '山东' => '山东省',
  15.     '山西' => '山西省',
  16.     '广东' => '广东省',
  17.     '广西' => '广西壮族自治区',
  18.     '新疆' => '新疆维吾尔自治区',
  19.     '江苏' => '江苏省',
  20.     '江西' => '江西省',
  21.     '河北' => '河北省',
  22.     '河南' => '河南省',
  23.     '浙江' => '浙江省',
  24.     '海南' => '海南省',
  25.     '湖北' => '湖北省',
  26.     '湖南' => '湖南省',
  27.     '甘肃' => '甘肃省',
  28.     '福建' => '福建省',
  29.     '西藏' => '西藏自治区',
  30.     '贵州' => '贵州省',
  31.     '辽宁' => '辽宁省',
  32.     '重庆' => '重庆市',
  33.     '陕西' => '陕西省',
  34.     '青海' => '青海省',
  35.     '黑龙江' => '黑龙江省',
  36.   );
  37.   foreach ($province_wrong_right as $wrong => $right) {
  38.     $items[“province/$wrong“] = array (
  39.       'title'=>'',
  40.       'page callback'=>'redirect_301',
  41.       'page arguments'=>array(“province/$right“),
  42.       'access arguments'=>array('access content'),
  43.     );
  44.   }
  45.   return $items;
  46. function redirect_301($path) {
  47.   drupal_goto($path,array(),301);

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

©里维斯社,本站推荐使用的主机:阿里云腾讯云

晨会游戏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: