
最近同事在整理電話号碼庫數據的時候,發現省市區幾級數據有很多不規範的地方,造成簡稱全稱重疊、省市區級别錯亂等問題,後來找到标準的行政劃分名稱,在數據庫進行了批量替換,但以前存在的頁面現在不存在了,會造成大量死鍊接,需要做301跳轉來保存可訪問性。
晚上找了一些辦法:
- 如果數量少,可以手工在菜單admin/config/search/path/add來添加;
- 如果數量太多,還可以用一個模塊Path redirect import來批量添加;
- 而我采用了另外一種辦法:修改了自定義模塊,在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重定向。
评论1
感謝分享
感謝分享