backgroundbackground

关于文件系统大小写敏感的坑

FileSystem / NTFS / Ext4 / Btrfs

技术

2025-05-14 08:26

起因

事情是这样的,朋友给我安利了一款游戏叫魔女之家,这是一款恐怖解谜游戏,当然本篇博客的重点不是游戏

经过

我拿到游戏本体后发现游戏目录下有个www目录,并且根目录下有node.dll,我当即怀疑这是个web游戏套壳

在好奇心驱使下,我启动了本地web服务器,并在浏览器中成功打开了该游戏,可以正常游玩,并且发现在web端游戏的存档数据是放在浏览器中的

到这里都还算正常

发展

然后我想把它挂到cloudflarepages上,这样随时都可以用浏览器游玩了

但是,当部署好后,打开对应的地址,会报错,浏览器控制台有报错404,这时我以为是cloudflare的问题

解决方案

将所有资源文件转为小写

然后在nginx中使用lua将请求路径全部转为小写

# 使用 Lua 模块将请求 URI 转换为小写

rewrite_by_lua_block {
    local uri = ngx.var.uri
    local lower_uri = string.lower(uri)

    -- 如果原始 URI 不是全小写,则内部修改请求 URI
    -- true 参数表示保留原始的查询字符串
    if uri ~= lower_uri then
        ngx.req.set_uri(lower_uri, true)
    end
}