剛開始用Drupal網站的時候對于多語言站點不是很了解,10種語言就單獨做了10個站點(郵編庫的10種外文中國郵編站點),導緻數據庫龐大、維護麻煩,後來我們又做了一個新版郵編庫,一套數據庫可以增加50種外文版本。
因為中國郵編有180萬數據,生成的頁面數量衆多、各種查詢消耗數據庫資源大,被各種爬蟲大量抓取的時候常常導緻MySQL性能問題。在Drupal 6升級到Drupal 7的過程中考慮過放棄這個系列,重定向到新版郵編庫,但當時沒有下這個決心,還是花了不少時間精力去實施了升級。
今年開年大力開展關停并轉工作,為其他項目發展騰出時間精力和服務器資源,就再次下決心來把這10個站點合并、跳轉到新版郵編庫的對應語言版本中,特别是多種不同網址去做了專門對應,這幾天做了這個工作,記錄如下:
一、對應頁面做301重定向跳轉,将多種網址列出對應:
頁面類型 | 新版郵編庫對應網址 | chn系列10種語言對應網址 | m.手機版 |
省份 | province/河北省-0(内容類型) province/河北省(分類) |
province/河北省(内容類型) |
|
地市 | city/保定市-0(内容類型) city/保定市(分類) |
city/保定市(内容類型) |
|
區縣 | district/河北省保定市安新縣(内容類型) district/安新縣(分類) |
county/河北省保定市新安縣(内容類型) |
|
地區 | area/河北省保定市新安縣-0(内容類型) area/河北省保定市新安縣(分類) |
area/河北省保定市安新縣(Views) category/河北省保定市安新縣(分類) |
|
郵編 | postcode/161141-0(内容類型) postcode/161141(分類) postcode/430000(分類) |
postcode/161141(Views) category/161141(分類) postcode_county/430000(Views) |
|
地址 | address/河北省保定市安新縣趙北口鎮趙莊子(内容類型) | address/河北省保定市安新縣趙北口鎮趙莊子(内容類型) | |
單頁 | city(Views) province(Views) postcode(Views) |
city(Views) 省份(頁面) 郵編(頁面) |
在chn系列的.htaccess中寫重定向:
RewriteCond %{HTTP_HOST} ^ar\.chn\.youbianku\.com$ RewriteCond %{REQUEST_URI} ^\/(province|city|area|postcode)\/(.*)$ RewriteRule ^(.*)$ https://www.youbianku.cn/ar/%1/%2-0 [R=301,L] RewriteCond %{HTTP_HOST} ^ar\.chn\.youbianku\.com$ RewriteCond %{REQUEST_URI} ^\/(address)\/(.*)_\d+$ RewriteRule ^(.*)$ https://www.youbianku.cn/ar/%1/%2 [R=301,L] RewriteCond %{HTTP_HOST} ^ar\.chn\.youbianku\.com$ RewriteCond %{REQUEST_URI} ^\/(address)\/(.*)$ RewriteRule ^(.*)$ https://www.youbianku.cn/ar/%1/%2 [R=301,L] RewriteCond %{HTTP_HOST} ^ar\.chn\.youbianku\.com$ RewriteCond %{REQUEST_URI} ^\/county\/(.*)$ RewriteRule ^(.*)$ https://www.youbianku.cn/ar/district/%1 [R=301,L] RewriteCond %{HTTP_HOST} ^ar\.chn\.youbianku\.com$ RewriteCond %{REQUEST_URI} ^\/postcode_county\/(.*)$ RewriteRule ^(.*)$ https://www.youbianku.cn/ar/postcode/%1 [R=301,L] RewriteCond %{HTTP_HOST} ^ar\.chn\.youbianku\.com$ RewriteCond %{REQUEST_URI} ^\/category\/(\d*)$ RewriteRule ^(.*)$ https://www.youbianku.cn/ar/postcode/%1 [R=301,L] RewriteCond %{HTTP_HOST} ^ar\.chn\.youbianku\.com$ RewriteCond %{REQUEST_URI} ^\/category\/([^\d]*)$ RewriteRule ^(.*)$ https://www.youbianku.cn/ar/area/%1 [R=301,L] RewriteCond %{HTTP_HOST} ^ar\.chn\.youbianku\.com$ RewriteCond %{REQUEST_URI} ^\/(city)$ RewriteRule ^(.*)$ https://www.youbianku.cn/ar/%1 [R=301,L] RewriteCond %{HTTP_HOST} ^ar\.chn\.youbianku\.com$ RewriteCond %{REQUEST_URI} ^\/page\/.*_\(省份)$ RewriteRule ^(.*)$ https://www.youbianku.cn/ar/province [R=301,L] RewriteCond %{HTTP_HOST} ^ar\.chn\.youbianku\.com$ RewriteCond %{REQUEST_URI} ^\/page\/.*_\(郵編)$ RewriteRule ^(.*)$ https://www.youbianku.cn/ar/postcode [R=301,L] RewriteCond %{HTTP_HOST} ^ar\.chn\.youbianku\.com$ RewriteCond %{REQUEST_URI} ^\/$ RewriteRule ^(.*)$ https://www.youbianku.cn/ar/ [R=301,L]
這是ar一種語言站點的跳轉,其它語言沒有合并一起寫,而是又單獨複制、修改了幾套;
二、因為有些老頁面在新站中沒有對應的内容,會導緻跳轉過來遇到404錯誤,我在新站中設置了404專門頁面,裡面嵌入PHP進行判斷,如果符合一定條件,就跳轉到新站首頁,避免大量浏覽者看到報錯;
三、雖然做了跳轉,但鍊接到老網站的網址還是盡量改為到新站的網址,在郵編庫Wiki站中修改了Interwiki表、修改了很多模闆中的站間鍊接。
先記錄到這裡,觀察一段看看。後面還有m.手機版等也可以考慮做類似跳轉。
评论