如何为带类型与子类型的博客页面配置自定义URL结构?
自定义博客URL路径实现方案
想要把博客URL从默认的mysite.com/pages/<blog_title>改成mysite.com/pages/<blog_type>/<blog_subtype>/<blog_title>,不同建站工具/平台有对应的实现方式,下面是几种常见场景的操作方法:
一、静态站点生成器(以Hexo、Jekyll为例)
Hexo
- 在博客文章的Front Matter里添加
blog_type和blog_subtype字段,示例:
--- title: 我的测试博客 blog_type: 技术 blog_subtype: 前端开发 ---
- 修改站点配置文件
_config.yml里的permalink配置项:
permalink: pages/:blog_type/:blog_subtype/:title/
- 重新生成静态文件并部署,新URL规则即可生效。
Jekyll
- 在文章的Front Matter中定义
blog_type和blog_subtype字段:
--- layout: post title: 我的测试博客 blog_type: 生活 blog_subtype: 旅行日记 ---
- 修改
_config.yml里的permalink设置:
permalink: /pages/:blog_type/:blog_subtype/:title/
- 重新构建站点,URL会自动按自定义规则生成。
二、CMS平台(以WordPress为例)
- 进入WordPress后台,先确保已给文章添加
blog_type和blog_subtype自定义字段,或把类型、子类型设为层级分类(父分类对应blog_type,子分类对应blog_subtype)。 - 前往「设置-固定链接」页面,选择「自定义结构」,输入:
/pages/%blog_type%/%blog_subtype%/%postname%/
若用层级分类,可改为:
/pages/%category%/%postname%/
- 保存设置后,新发布或更新的文章URL会按规则生成。
三、自定义开发的博客系统
如果是自主开发的系统,直接修改路由配置并调整链接生成逻辑:
- 后端路由示例(Node.js/Express):
app.get('/pages/:blog_type/:blog_subtype/:blog_title', (req, res) => { const { blog_type, blog_subtype, blog_title } = req.params; // 根据参数查询对应文章并返回页面的逻辑 });
- 前端生成文章链接时,将
blog_type和blog_subtype拼接进URL字符串,确保和后端路由规则匹配。
内容的提问来源于stack exchange,提问作者Mike Johnson Jr
相关产品推荐
相关产品推荐

