在前几天写的一篇博文《为网站添加图片网站地图》中我提到有三种办法来实现网站地图:
- 专门写的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