如何在不重命名文件夹的前提下修改URL中内容板块的名称
你不需要重命名content/foo存储文件夹,存在多种仅修改目标URL的实现方案,根据你使用的技术栈不同可以选择不同的配置方式:
常见实现方案
静态站点生成器(SSG)配置路由规则
绝大多数SSG(如Hugo、Hexo、Next.js、Gatsby等)都支持为指定内容目录自定义永久链接/输出路径规则,不需要修改本地存储结构。比如Hugo可以在content/foo目录下的_index.md文件FrontMatter中添加url: /bar/配置,即可将该目录下所有内容的路由前缀统一替换为bar;Next.js等框架可以通过内置的rewrites配置项,直接将content/foo下的内容输出路径映射为/bar/*的访问规则。Web服务器层面配置重写/反向代理
如果不想改动站点生成逻辑,也可以在Nginx、Caddy等Web服务器侧配置路由规则。可以配置301永久重定向,将所有/foo/*的请求跳转到/bar/*路径;也可以配置内部重定向,让用户访问/bar/*时直接返回原/foo/*路径下的静态文件,用户侧看到的URL始终为/bar/开头,连静态文件的输出目录都不需要调整。
示例Nginx重定向配置:rewrite ^/foo/(.*)$ /bar/$1 permanent;CMS系统自定义内容类型路由前缀
如果你使用的是WordPress、Strapi等内容管理系统,可以直接在对应内容类型的设置中修改路由前缀,把foo替换为bar即可,该配置不会影响后台内容的实际存储路径。
如果需要保留原/foo/*路径的访问能力避免死链,建议额外配置301重定向规则,保证SEO权重和用户访问体验不受影响。
内容的提问来源于stack exchange,提问作者Simone

