nginx вловлює всі інші місця, ніж вказано


19

У мене на сервері є кілька локацій. Я хочу зловити всі інші місця, які користувачі надають через браузер. Як до цього? Наприклад

 server {
     ...
     location /location1 {
              do something;
     }
     location /location2 {
              do something;
     }
     location /all_other_locations {
            return 301 http://www.google.de
     }

Відповіді:


31

Місця розташування nginx засновані на префіксах (окрім regexp), тому location /відповідають усім запитам, якщо не відповідає більш конкретному.

server {
    location / {
        # catch all unless more specific location match
    }

    location /location1 {
        # do something
    }

    location /location2 {
        # do domething
    }
}

1
Що робити, якщо ви хотіли /відповідати чомусь конкретному, а тоді все інше буде спіймане чимось іншим? Чи використовуєте ви тоді підстановку підстановки?
Тім Тісдалл

3
ах .. Я думаю, це може бути корисно location = /. Явний /запит відповідатиме йому, і все інше перейде, location /якщо щось інше не відповідає.
Тім Тісдалл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.