Heim  >  Fragen und Antworten  >  Hauptteil

So stellen Sie Nginx so ein, dass bei Dateien in einem Verzeichnis die Groß-/Kleinschreibung nicht beachtet wird

Der Cache wird dynamisch generiert. Es ist effizienter, diese Cache-Dateien direkt über die URL zu lesen. Cache-Buchstaben sind jedoch alle in Kleinbuchstaben geschrieben. Zum Beispiel http://xxx/ooo/abc.jpg

Wenn der Benutzer http://xxx/ooo/ABC.jpg liest, kann der Cache nicht gefunden werden (es wird ein Fehler gemeldet

).

Wie kann ich die Groß-/Kleinschreibung von Dateien nur im Pfad ooo/? ignorieren?

给我你的怀抱给我你的怀抱2737 Tage vor803

Antworte allen(3)Ich werde antworten

  • 仅有的幸福

    仅有的幸福2017-05-16 17:30:49

    楼上都没看清楚题目,就贴了个链接,可惜我声望不够,不然肯定踩你一下
    我回答一下楼主的问题,两个方案:
    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

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 17:30:49

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

    Antwort
    0
  • PHP中文网

    PHP中文网2017-05-16 17:30:49

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

    Antwort
    0
  • StornierenAntwort