最近同事在整理電話号碼庫數據的時候,發現省市區幾級數據有很多不規範的地方,造成簡稱全稱重疊、省市區級别錯亂等問題,後來找到标準的行政劃分名稱,在數據庫進行了批量替換,但以前存在的頁面現在不存在了,會造成大量死鍊接,需要做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
感謝分享
感謝分享