今年6月份以後Google在中國大陸就完全無法訪問了,搞得我們以前嵌入過Google地圖、Google搜索等API代碼的網站也打開困難,用Google DFP投放的AdSense廣告也收益下降、匹配變差,前一陣子不得已把放在國内服務器上的中文網站進行了一輪修改,全面用百度相應的産品百度地圖、百度搜索、百度聯盟、百度廣告管家等軟件來替換Google的産品。
Drupal網站中的查找和修改比較容易,而MediaWiki網站就麻煩一些,一些頁面和模闆都是很多年前設置的,難以記憶,Wiki原代碼中的HTML代碼也無法通過Wiki搜索直接找到。後來找了一個直接在數據庫中查找的辦法來解決,步驟如下:
- 用phpmyadmin打開MediaWiki網站對應的數據庫,找到searchindex這個表
- 在searchindex表的si_text字段中搜索需要的關鍵詞SELECT * FROM `jinglesearchindex` WHERE `si_text` LIKE '%googleFillSlot%' LIMIT 0 , 30
- 查看搜索結果,包含si_page、si_title、si_text三個字段,第一個字段是頁面的ID,後面是經過編碼的标題和内容
- 用這個網址打開找到的頁面http://www.youbianku.com/index.php?curid=46 ,其中46就是si_page;
- 編輯該頁面,在源代碼中查找、替換,然後保存;
- 全部si_text的頁面都修改後,phpmyadmin中刷新第2步的搜索,查看結果,順利的話應該就找不到符合條件的記錄了。
偶爾也有搜索結果與實際不符的情況,可能是修改沒有實時更新Wiki搜索的數據庫造成的。
2016年5月13日補充:要徹底檢查文本(包括曆史頁面舊版本)中包含的字符,可以這樣搜索:
select oldid from text where old_text like '%BAIDU%';
再從這裡的oldid(例如: 2077106)繼續查詢:
select rev_page from jinglerevision where rev_text_id = 2077106;
這個獲得的rev_page(例如:58394)就是上面說的si_page,也就可以http://www.youbianku.com/index.php?curid=58394
來查看、編輯頁面。
评论2
關于mediawiki的搜索模塊
初次接觸mediawiki現在正在找他的負責進行搜索的代碼,但初步發現apiquerysearch.php和specialsearch.php.貌似有搜索的功能,到底是哪段代碼負責搜索的呢?期待您的回複。我也沒有修改過MediaWiki搜索代碼
MediaWiki我用的時間很長了,但絕大多數都是使用其功能,修改代碼很少,搜索部分沒有改過,所以還不知道具體代碼位置,抱歉。建議您在官方網站查找相關資料,我以前都是這樣慢慢摸索的。