Hexo 文章的 url 在根目录配置文件_config.yml中的 permalink进行配置,默认配置如下:

1
permalink: :year/:month/:day/:title/ 

这里的:titlesource/_post下的相对路径,但是这样的话对于中文标题,就会被 Encode 的转码导致url奇长无比。

可以采用一下两种方案:

方案1:使用hash值

修改_config.yml配置的permalink

1
permalink: :year/:month/:day/:hash/ 

这样每次生成文章 url,会以文件名和日期自动生成 SHA1 hash,不会重复。

方案2:自定义 url

修改_config.yml配置的permalink

1
permalink: :year/:month/:day/:id/ #id 在文章中自定义

当发布文章时在文章头部信息添加id信息:

1
2
3
4
5
6
7
8
---
title: Hexo 拒绝文章url被编码影响
date: 2021-10-29 11:02:53
categories: blog
id: hexo_url
tags:
- hexo
---

当然,我们也可以使用更多 hexo 参数更自由的制定 url 规则:

变量 含义
:year 文章的发表年份 – 2021
:month 文章的发表月份 – 09
:i_month 文章的发表月份 – 9
:day 文章的发表日期 – 08
:i_day 文章的发表日期 – 8
:hour 文章发表时的小时 – 02
:minute 文章发表时的分钟 – 08
:second 文章发表时的秒钟 – 02
:title relative to “source/_posts/“ folder
:name 文件名称
:post_title 文章标题
:id 自由添加的文章 ID (not persistent across cache reset)
:category 分类。如果文章没有分类,则是 default_category 配置信息。
:hash SHA1 hash of filename (same as :title) and date (12-hexadecimal)