nginx如何设定某个目录下的文件不区分大小写
给我你的怀抱
给我你的怀抱 2017-05-16 17:28:49
0
3
799

动态生成缓存了,想通过URL来直接读取这些缓存文件已达到效率更高的目的。但是缓存字母统一都是小写。比如http://xxx/ooo/abc.jpg

当用户读取http://xxx/ooo/ABC.jpg的时候无法定位到缓存(报错

请问如何仅在ooo/这个路径下忽略文件大小写?

给我你的怀抱
给我你的怀抱

全部回复(3)
仅有的幸福

楼上都没看清楚题目,就贴了个链接,可惜我声望不够,不然肯定踩你一下
我回答一下楼主的问题,两个方案:
1. 采用nginx官方提供的Perl Moudle,注意这个模块并没有自动加载,需要运行配置文件时增加--with-httpperlmodule。首先,location要匹配到ooo目录,然后要匹配剩余uri,如果有大写,则调用perl将url全部转成小写,然后rewrite,参考配置代码:

    #测试perl的统一转小写功能
    perl_set    $url '
        sub {
                my $r = shift;
                my $lurl = lc($r->uri);
                return $lurl;
        }
    ';

    location ~* ^/ooo/ {
        if ($uri ~ [A-Z]) {
            rewrite ^(.*)$  $url    premanent;
        }   

        root ooo所在的根目录;
    }

  1. google发现有人提供了nginx的第三方模块,用法说的比较清楚,我直接贴出链接好了:https://github.com/replay/ngx_http_lower_upper_case
伊谢尔伦

可以用lua、perl做处理,也可以写模块进行,上面已经给出来了,就不重复了。

Ty80

http://sookk8.blog.51cto.com/455855/564705

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!