配置

丑陋 URL 配置

让页面输出为带文件扩展名的丑陋 URL。

丑陋 URL(ugly URL)是带有文件扩展名的 URL。例如:

https://example.org/section/article.html

在默认配置下,Hugo 生成的是漂亮 URL(pretty URL)。例如:

https://example.org/section/article/

uglyURLs 区段用于改变这一行为,既可以作用于整个站点,也可以只作用于特定区块。

键名与默认值

键名 类型 默认值 含义
uglyURLs bool 未启用(空映射 {}) 设为 true 时,为整个站点生成丑陋 URL。
uglyURLs.<区块名> bool 未启用 仅为指定区块启用或关闭丑陋 URL。只有把 uglyURLs 写成映射时才使用这种形式。

默认配置为空,因此站点输出的是漂亮 URL:

uglyURLs = {}

为整个站点生成丑陋 URL

把 uglyURLs 设为 true,站点内的所有页面都会改为输出丑陋 URL:

uglyURLs = true

启用后,原本发布到 /section/article/ 的页面会改为发布到 /section/article.html,发布目录中的文件结构也随之改变。

为特定区块生成丑陋 URL

也可以只对部分区块启用。把 uglyURLs 写成映射,键为区块名,值为布尔值:

[uglyURLs]
books = true
films = false

上例中 books 区块的页面生成丑陋 URL,而 films 区块保持漂亮 URL。

与输出格式的关系

单个输出格式可以用 noUgly 设置覆盖站点级别的 uglyURLs:noUgly 为 true 时,即使启用了丑陋 URL,该输出格式也不会生成丑陋 URL。例如内置的 rss 输出格式就把 noUgly 设为 true,因此它的 URL 始终是漂亮 URL。各输出格式的 noUgly 默认值与设置方法见输出格式配置。

注意事项

  • 丑陋 URL 会改变页面的实际 URL,之前使用漂亮 URL 的链接可能因此失效;必要时可以用别名(alias)把旧地址重定向到新地址,参见内容管理。
  • 该设置只影响 URL 与发布路径的形态,页面内容本身不受影响。
  • 如果站点部署平台上有额外的重写或美化规则,启用丑陋 URL 后需要确认这些规则仍然适用。