在前幾天寫的一篇博文《為網站添加圖片網站地圖》中我提到有三種辦法來實現網站地圖:
- 專門寫的php程序,與.htaccess的rewrite配合重寫網址(詳見《Drupal網站Views生成頁面的XML網站地圖構建》)
- 用module文件中的menu路徑來生成(詳見《Drupal中用module文件中的menu路徑來生成sitemap.xml》)
- 用views中的xml views來生成(現在來寫這篇博客文章來介紹)
以前很早就想過用views來做xml sitemap,替代
這是 XML 分類的頁面,點擊下面标題查看詳細文章内容:
在前幾天寫的一篇博文《為網站添加圖片網站地圖》中我提到有三種辦法來實現網站地圖:
以前很早就想過用views來做xml sitemap,替代
在剛剛寫的一篇博文《為網站添加圖片網站地圖》中我提到有三種辦法來實現:
其實用module文件中menu路徑來生成網址是Drupal的标準做法,我們用這種做法生成過普通html頁面以及p
好些年前,我們的網站就用PHP程序來動态生成robots.txt和sitemap.xml,其中網站地圖用php來動态生成而沒有保存成文件,因為有些站網址太多,怕sitemap文件過多、過大而占用磁盤空間。雖然動态生成會對數據量很大的數據庫有一定影響,但經過一些優化還是可以承受的。但URL很多的網站還存在另外一個問題,就是sitemap被大量爬取,占用帶寬,這個問題因為不是很普遍、很迫切,所以就一直放着沒有動,隻是把有一個站的php程序中添加了延時來讓爬蟲慢一點。
我們一直很重視網站地圖對搜索引擎的提交,以前的MediaWiki自帶生成sitemap的程序,Drupal也有專門的第三方擴展XML Sitemap程序。
但Drupal的這個擴展隻能對node, user, taxonomy term, menu等生成網站地圖,也可以手工添加custom網址加入地圖中,但卻無法把Views批量做成的頁面都加進去。這個問題以前不算很突出、很重要,因為主要頁面都是node頁面或者分類頁面,但采取“在Drupal中直接導入、使用數據庫”的辦法以後,一個網站的主要頁面基本上都是Views生成的,這時Drupa
在向百度站長平台提交MIP (Mobile Instant Page - 移動網頁加速器) 網址的時候,我們采用了《百度MIP版本鍊接的批量提交》一文中的辦法,這樣确實可以定時自動提交,不過要整理出需要提交的網址文本這個過程很耗時,特别是我們一些站點的網址數量龐大,用浏覽器一頁一頁訪問sitemap頁面、保存、合并、替換、上傳等每個環節都需要手工操作并苦苦等待。
今天下午幹脆花了一些時間來編寫了一個PHP程序,設置一些參數後,自動讀取預設的sitemap網址、下載數據并進行替換、合并、保存到指定文件名下,整個過程無需手工操作,即使讀取sitemap網址依然比較
剛才記錄了一篇《自己編寫的網站監控程序》,可以實現比較複雜的多系列網站巡檢,設置第二個參數為sitemap.xml就可以檢查網站地圖。
不過看到以前還寫過一個更簡單的sitemap.xml檢查程序monitor_xmlsitemap.php,也把PHP源代碼貼出來:
<?php function check($host) { //$keyword = 'xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"'; $keyw
2013年8月份寫了一篇博文《Drupal網站多語言版的站點地圖自動轉換》,是修改xmlsitemap.page.inc程序來實現多種語言網站的sitemap,這是多種語言網站提供對應的多種sitemap,博文中提到Google推薦的另外一種辦法《通過站點地圖指明備選語言網頁》(英文版Use a sitemap to indicate alternate language pages, Multilingual and multinational site annotations in Sitemaps ,注意目前需要翻牆訪問),是多種語言網站提供一個sitema
以前托管服務器或者租用的服務器一般都是100M共享的帶寬,很少出現機器帶寬被占滿的情況,去年開始采用阿裡雲平台後,帶寬就是一個不得不考慮的成本因素,我們一般都是每台ECS購買的10M左右帶寬,每年費用已經不少了,而投入使用後很輕易就會被占滿,關鍵是網站的流量并沒有特别提升,廣告收入沒有增加,成本卻在大幅提高,還導緻正常用戶訪問變慢、困難。
同事在Linux服務器上安裝了一個iftop來查看帶寬占用情況,很容易就發現了是搜索引擎的爬蟲抓取sitemap.xml這樣的網址占用了很大帶寬,我們網站系列多、頁面多、還有多語言或者手機版,網站地圖就特别的多,如果爬蟲來得
我們做的Drupal網站數據量都比較大,幾年前一開始就遇到cron運行報錯的情況,主要就是因為cron運行期間要生成xmlsitemap,遇到php的内存限制或者運行時間限制導緻出錯無法正常執行,我們當時采取的辦法是修改“Minimum sitemap lifetime(sitemap最小存在時間)”為10年(drush vset xmlsitemap_minimum_lifetime "315360000",并且還要修改modules/xmlsitemap/xmlsitemap.admin.inc中的内容,增加10年這個表單選項
很長時間沒有更新drupal 網站的sitemap了,近期用drush xmlsitemap-regenerate命令來批量更新,但在遇到數據量大的網站時,有時會遇到類似這樣的報錯:
Fatal error: Maximum execution time of 240 seconds exceeded in /mnt/gb2/htdocs/drupal.mingluji.com/includes/path.inc on line 115 Drush command terminated abnormally due to an unrecoverable
2002-2023 v11.7 a-j-e-0