Рейтинг:1

add_header для определенного request_uri

флаг in

Приложение обрабатывает всю маршрутизацию. Итак, работает этот базовый блок конфигурации:

место расположения / {
    try_files $uri $uri//index.html;
}

Проблема в том, что я хочу добавить собственный заголовок всякий раз, когда посетитель запрашивает определенный URI. Например, /содержание. Ну, это должно быть легко, как:

расположение ~ ^/контент {
   try_files $uri $uri//index.html;
   add_header Значение X-CUSTOM-HEADER;
}

Но это не работает. Nginx не создает этот заголовок. Затем я попытался удалить try_files директива от содержание блок, но это явно не работает, так как нет «настоящего» /содержание папка в корневом каталоге.Таким образом, nginx выкинет 404 Не Найдено ошибка.

Я также попытался переместить этот блок внутрь блока корневого местоположения. Тоже не работает.


В Apache это можно легко сделать с помощью этого:

<If "%{THE_REQUEST} =~ pattern">
    Header set HEADER value;
</If>
Michael Hampton avatar
флаг cz
Почему вы используете регулярное выражение в своем «местоположении»? Это не кажется необходимым.
Рейтинг:2
флаг jp

Вы можете установить заголовок, используя сопоставленную переменную. Если для переменной задана пустая строка, заголовок будет автоматически отброшен.

Например:

карта $request_uri $myheader {
    ~^/содержимое a_value;
}
сервер {
    ...
    add_header X-CUSTOM-HEADER $myheader;

    место расположения / {
        try_files $uri $uri//index.html;
    }
}
Annahri avatar
флаг in
Ого, не подумал об этом. Это работает!!! Я потратил часы, чтобы узнать, как это сделать! Спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.