URL 中包含日语的主题,若 URL 不完全匹配则不会重定向

感谢 @Falco 和 Discourse 团队的修复 :rose:

将 slug 生成方式改为 encoded 后,404 主题问题得到了解决(无需重新生成 slug)。

但我们仍然遇到了“分类未找到”的问题,我在测试环境的 Discourse 上尝试了各种方法,以确保不会搞砸 :grin:

问题描述

  1. 当我将 slug 生成方式改回 ascii 时:

分类恢复正常,其生成的 URL 也完全正确(阿拉伯语,符合预期):

https://discourse.coretabs.net/c/%D8%A7%D9%84%D8%A3%D8%B3%D8%A6%D9%84%D8%A9-%D9%88%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D9%81%D8%B3%D8%A7%D8%B1%D8%A7%D8%AA

但是,主题生成的 URL 却是英文的(尽管标题实际上是阿拉伯语),例如:

https://discourse.coretabs.net/t/5-mktbat-baythwn-mfydt-lmsharye-telym-alalt/2930/5
  1. 当我将 slug 生成方式改为 encoded 时:

分类无法访问(显示“哎呀!该页面不存在或是私有的”),尽管其生成的 URL 完全正确(阿拉伯语,符合预期):

https://discourse.coretabs.net/c/%D8%B9%D8%A7%D9%85

而主题可以正常访问,其 URL 也是预期的阿拉伯语格式:

https://discourse.coretabs.net/t/5-%D9%85%D9%83%D8%AA%D8%A8%D8%A7%D8%AA-%D8%A8%D8%A7%D9%8A%D8%AB%D9%88%D9%86-%D9%85%D9%81%D9%8A%D8%AF%D8%A9-%D9%84%D9%85%D8%B4%D8%A7%D8%B1%D9%8A%D8%B9-%D8%AA%D8%B9%D9%84%D9%8A%D9%85-%D8%A7%D9%84%D8%A2%D9%84%D8%A9/2930/5

解决方案

  1. 将 slug 生成设置改为 ascii
  2. 在每个分类页面中将分类 slug 改为英文
  3. 将 slug 生成设置改为 encoded
  4. 现在你可以将分类 slug 改为你选择的语言
5 个赞