相关文章推荐
还单身的红茶  ·  encodeURI() - ...·  1 周前    · 
留胡子的柠檬  ·  python ...·  1 年前    · 
坚强的领带  ·  Win10 ...·  1 年前    · 
英勇无比的仙人掌  ·  ReflectionUtils ...·  1 年前    · 

有时候会有URI忽略大小写的需求,例如一个网址 http://127.0.0.1/abc.jpg 。一般URI是区分大小写的,这时候如果使用/ABc.jgp、/abC.JPG这样的写法,可能就访问不到abc.jpg这个资源。这里,我们讨论一下如何忽略URI中的大小写问题,使之不管大写,小写,都可以准确的被nginx识别:


1 :安装 perl 开发包。

# yum -y install perl*

2 :重新编译 nginx ,添 --with-http_perl_module ,使其支持 perl

3 :修改 nginx 配置文件,在 http{ } 选项中添加忽略大小写的语法。

# vinginx.conf
 perl_set   $url '
        sub {
          my $r = shift;
          my $re = lc($r->uri);
          return $re;}';


4 :应用该语法配置,在 server{} 选项中添加如下配置:

    if ($uri ~ [A-Z]){
       rewrite ^(.*)$ $url last;


也可对单独的目录进行配置:

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