前言
因为最近换了提供商, 加上在RainCloud家白嫖了50,想着顺便测试,就迁移到了这边
但是这边的虚空离奇抽风,但本着懒折腾的想法,就重新编译了份静态并上传
起初体验良好,但是一旦进入中文URL,就会404 (,也就有了这个笔记
为什么使用英文网址?
一般来说,URL只能使用英文和数字和一些标点符号表示。这是因为网络标准RFC 1738 做了硬性规定。
虽然在Hexo中引用:title可以显示中文的网址,但是复制粘贴到记事本会发现得到的是一大串百分号之类的“乱码”(其实这并不是乱码,而是中文被转码成十六进制编码的结果),看起来不怎么好看:
因此下面我们通过一种简单的方式使发布的文章的网址变得简洁:
如图所示我只用了十位数字作为文章的唯一标识,你也可以自定义此数字:
在permalink中使用文章id替代“:title”
在官方文档永久链接(Permalinks) | Hexo一章中有这样一段描述:
permalink的变量就这几个,其中文章id这个变量非常有用。
我们可以在博客根目录的配置文件(_config.yml)中这样修改:
1 | #permalink: :year/:month/:day/:title # 这是原配置 |
并且在.\scaffolds\post.md
中修改为:
(注意新增了一个id:)
1 | title: {{ title }} |
在我们的具体文章中,你可以使用任意字符串作为此文章的id,例如:
1 | title: 如何让你的Hexo博客网址使用全英文路径 |
不过为了命名规范(同时也是为了方便记忆),我建议使用创建日期中的月+日+时+分+秒来定义一个id,但是此篇文章我使用tag作为id(懒)。
使用category_map实现分组映射
有同学也注意到了,官方文档中还提到permalink可以使用:category变量,比如我们想要这样定义永久链接:
修改博客配置文件_config.yml:
1 | permalink: :year/:category/:id/ |
同理tag_map可以实现标签的中英文转换。