2013-08-24 10 views
12

Używam Nginx dla prostej strony internetowej demo, a ja po prostu skonfigurować Nginx tak:Jak sprawa URL niewrażliwy z Nginx

server { 
    listen   80; 
    server_name  www.abc.com; 

    location/{ 
     index   index.html; 
     root   /home/www.abc.com/; 
    } 
} 

W moim folderze www.abc.com mam podfolder o nazwie Sub, i wewnątrz ma plik index.html. Więc kiedy próbuję odwiedzić www.abc.com/Sub/index.html, to działa dobrze. Jeśli odwiedzę www.abc.com/sub/index.html, zwróci ona 404.

Jak skonfigurować Nginx do rozróżniania małych i małych liter w adresie URL?

Odpowiedz

17
server { 
    # Default, you don't need this! 
    #listen   80; 

    server_name  www.abc.com; 

    # Index and root are global configurations for the whole server. 
    index   index.html; 
    root   /home/www.abc.com/; 

    location/{ 
     location ~* ^/sub/ { 
      # The tilde and asterisks ensure that this location will 
      # be matched case insensitive. nginx does not support 
      # setting absolutely everything to be case insensitive. 
      # The reason is easy, it's costly in terms of performance. 
     } 
    } 
} 
+0

Wow fajnie, wielkie dzięki. –

+0

Powyższe rozwiązanie nie działa dla mnie .. Czy możesz mi pomóc. ~ * Działa tylko dla warunku – Catmandu

+3

Myślę, że to będzie pasować do wszystkich adresów URL * zawierających */sub/(np. Pasowałoby to również do "example.com/yellow" /pod/"). Powinien to być 'location ~ * ^/sub /' (z karetką). –