Flask 中不区分大小写的路由

Case insensitive routing in Flask

假设我有人访问路线,例如:

helloworld.com/APP
HELLOWORLD.COM/APP
helloworld.com/app

只有第 3 个 link 有效。第一个和第二个给我一个 404。

如何将 Flask 配置为不区分大小写的路由,以便人们即使键入 HeLloWoRLd.com/aPp 也可以访问我的路由?

请参阅 this thread 以了解执行此操作的骇人听闻的方法,以及为什么它可能 不是一个好主意。

简而言之:URL区分大小写 W3C standard,让它们不区分大小写可能会扰乱您网站的搜索引擎索引以及其他潜在问题。

推荐的替代方法是编写一个 custom 404 error handler 代码,它查找输入错误的 URL 的小写版本,然后适当地重定向。

另请注意,域名本身不在 flask 的路由控制之下(而且 实际上已经不区分大小写了)——所以只有 /app 部分很重要。