杂货铺

杂货铺中囤杂货

👉 所有文章
技术 理解 HTML 中的 pre 标签 使用 prismjs 代码高亮库 理解 sitemap.xml 解决 Intellij IDEA 右下角不显示 git 分支的问题 并发与并行的区别 ASCII码对照表 理解字符编码、Unicode、UTF-8、UTF-16 认证与鉴权的区别
工具 DBeaver: 跨平台的数据库管理工具 Snipaste: 一个非常好用的截图、贴图工具 常见的网页版流程图、UML建模工具 实用 Chrome 谷歌浏览器插件 低多边形图片生成工具 一些好用的 Markdown 编辑器 Windows 下好用的软件 使用 Genymotion 模拟 Android 环境 实用工具整理 实用网站整理 calibre - 电子书管理软件
其他 试用Atom编辑器 解决谷歌索引404网页的问题 解决论文编译后没有参考文献 思维导图,认清自己,制定目标 想法若干——关于地图 man2:一个快速查找命令使用示例的工具 浅入浅出CouchDB:CouchDB安装 浅入浅出CouchDB:使用curl管理CouchDB 如何修改自己在github中的项目 对c++指向数组指针的一些理解 升级wordpress出现错误:Request exceeded the limit of 10 internal redirects The spirit of softwares 方法链 一些不错的网站 苹果的swift 如何现代化院系的网站 事前、事中、事后 关于选择的一些思考 重要紧急矩阵 二八定律 真相 如何在电脑上使用微信读书 ? 如何关闭微信读书的「看一看」? 从零开始Docker化Ghost博客系统 ghost博客添加多说评论 以生产模式运行Ghost博客系统 Ghost博客主题制作简明教程 将Ghost打造成一个本地APP 重置Ghost博客中的用户密码 在Ubuntu中安装Ghost博客系统 为Ghost博客添加标签云
已迁移 【已迁移】故事: 2020 【已迁移】故事: 2019-nCoV 肺炎

解决谷歌索引404网页的问题


2014-12-22

问题

静态博客的确很不错,也有很好的服务,比如github可以帮忙托管博客。我最开始是使用wordpress写博客,然后被静态博客的简洁(以及不用担心博客托管的费用和管理)所吸引,改用了hexo。使用了一段时间后,发现简洁的同时也给我带来了管理上的不简洁,之后改用ghost博客,同时url也基本都改变了。

如果请求的url不存在,Ghost会返回404页面,响应状态也是404。然而过去了2个月左右,我在google搜索“樂天笔记 atom”,第一条仍然是已经不存在的页面,这篇文章现在的地址是http://www.letiantian.xyz/2014-05-10-atom-editor/

怎么解决

谷歌站长工具支持删除url,但是一次只能删除一个,无法批量删除。在一个新闻组里也找到了类似的问题,回复中建议使用robots.txt来disallow不存在的url。我决定试一试。

如何修改Ghost的robots.txt

Ghost的默认robots.txt内容如下:

User-agent: *
Disallow: /ghost/

在使用的主题目录下加上自己的robots.txt即可。

如何找到不存在的url

hexo带有一个sitemap生成插件,可以用它来生成sitemap.xml,一般格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

    <url>
    <loc>http://letiantian.xyz/2014/10/04-asynchronous-requests/</loc>
    <lastmod>2014-10-04T02:59:20.000Z</lastmod>
    <changefreq>daily</changefreq>
    </url>

    <url>
    <loc>http://letiantian.xyz/about/index.html</loc>
    <lastmod>2014-05-01T14:38:19.000Z</lastmod>
    <changefreq>daily</changefreq>
    </url>
</urlset>

了解格式后,要做的就是从sitemap.xml提取出所有的url、并删掉url中的http://letiantian.xyz

使用xml2js模块提取url:

关于xml2js:https://www.npmjs.com/package/xml2js

$ npm install xml2js
# !/usr/bin/nodejs
var fs = require('fs'),
xml2js = require('xml2js');

var parser = new xml2js.Parser();
fs.readFile(__dirname + '/sitemap.xml',
    function(err, data) {
        parser.parseString(data,
            function(err,result) {
                urls = result.urlset.url;
                for (var i = 0; i < urls.length; i++) {
                    console.log(urls[i].loc[0].replace(/http:\/\/letiantian.xyz/, ''));
                }
            }
        );
    }
);

结果:

/2014/10/04-asynchronous-requests/
/about/index.html
/machine-learning/2014/09-21-affinity-propagation/
/machine-learning/2014/09-20-meanshift-clustering/
/machine-learning/2014/09-18-logistic-regression/
/machine-learning/2014/09-18-gradient-descent/
/algorithm/2014/09-17-float-string/
/2014/09/16-nginx-tornado/
/blogroll/index.html
/2014/09/08-find-repeating-elements-in-array/
/2014/09/08-latex-complie-references-warning/
/machine-learning/2014/09-07-k-medoids/
/2014/09/06-variance-and-covariance/
/hello-world/
/algorithm/2014/09-02-arrange-activity/
/2014/08/30-ruby-thread-join/
/algorithm/2014/08-24-shuffle-algorithm/
/algorithm/2014/08-24-reservoir-algorithm/
/2014/08/24-install-and-config-ruby/
/2014/08/22-modernize-website-of-college/
......

据此,改写robots.txt即可。

更进一步,去除cat和tag。

等待结果

我在2014-12-14这一天修改了robots.txt。

若干天后。。。。今天:


( 本文完 )

文章目录