nginx 和 linux 上不区分大小写的路径匹配

Case insensitve path matching on nginx and linux

我有一个网站已从 Windows Web 服务器迁移到 Linux 上的 nginx。有些模板我无法修改,它们具有指向多级文件夹结构(超过 10k 文件)中的文件的链接。这些文件和链接是在不区分大小写的情况下创建的。现在该站点已在 Linux 上,我有数千个因大小写损坏的链接。

是否可以将重定向块添加到我的 PHP 代码中以处理不区分大小写的重定向?

我找到了很多关于如何使用特定重定向执行此操作的示例,但是我如何为未知数量的路径执行此操作?

提前致谢,对于错误的解释,我们深表歉意。

这是个棘手的问题。

第一个建议是规范化目录和文件名。如果您可以将它们全部转换为小写,那么您可以使用 try_files $uri $uri_lowercase

第二个建议是为大小写不匹配的目录和文件创建 symlinks,即如果 links 引用 images 和 Images,但目录是 images,创建一个符号link 和 ln -s images Images

显然规范化或创建 symlinks 将是 easier/faster 使用 shell 脚本。