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

时间:2015-01-12 21:52:50

标签: linux redirect nginx case-insensitive

我的网站已经从Windows Web服务器迁移到Linux上的nginx。有些模板我无法修改,它们链接到多级文件夹结构中的文件(超过10k文件)。这些文件和链接的创建没有区分大小写。现在该网站已经在Linux上,因为大小写,我有成千上万的链接。

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

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

提前致谢,对不好的解释感到抱歉。

1 个答案:

答案 0 :(得分:0)

这是一个非常棘手的问题。

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

第二个建议是为具有大小写不匹配的目录和文件创建符号链接,即如果链接引用图像和图像,但目录是图像,则创建带有ln -s images Images的符号链接

使用shell脚本显然可以更容易/更快地规范化或创建符号链接。