
アプリはすべてのルーティングを処理します。したがって、次の基本的な構成ブロックが機能します。
location / {
try_files $uri $uri/ /index.html;
}
問題は、訪問者が特定の URI を要求するたびにカスタム ヘッダーを追加したいということです。たとえば、/content
次のようにすると簡単です。
location ~ ^/content {
try_files $uri $uri/ /index.html;
add_header X-CUSTOM-HEADER value;
}
try_files
しかし、それはうまくいきません。Nginxはそのヘッダーを作成しません。そこで、コンテンツ/content
ブロックしますが、ルートディレクトリに「実際の」フォルダがないので、明らかに機能しません。したがって、nginxは404お探しのページが見つかりませんでしたエラー。
また、そのブロックをルート ロケーション ブロック内に移動しようとしました。 これも機能しません。
Apache では、次のようにして簡単に実行できます。
<If "%{THE_REQUEST} =~ pattern">
Header set HEADER value;
</If>
答え1
マップされた変数を使用してヘッダーを設定できます。変数が空の文字列に設定されている場合、ヘッダーは暗黙的に破棄されます。
例えば:
map $request_uri $myheader {
~^/content a_value;
}
server {
...
add_header X-CUSTOM-HEADER $myheader;
location / {
try_files $uri $uri/ /index.html;
}
}