
Die App übernimmt das gesamte Routing. Dieser grundlegende Konfigurationsblock funktioniert also:
location / {
try_files $uri $uri/ /index.html;
}
Das Problem ist, dass ich einen benutzerdefinierten Header hinzufügen möchte, wenn ein Besucher eine bestimmte URI anfordert. Zum Beispiel /content
. Nun, das muss so einfach sein wie:
location ~ ^/content {
try_files $uri $uri/ /index.html;
add_header X-CUSTOM-HEADER value;
}
Aber das funktioniert nicht. Nginx erstellt diesen Header nicht. Dann habe ich versucht, die try_files
Direktive aus demInhaltBlock, aber das funktioniert offensichtlich nicht, da es keinen "echten" /content
Ordner im Stammverzeichnis gibt. Daher wirft nginx404 Nicht gefundenFehler.
Ich habe auch versucht, diesen Block in den Stammstandortblock zu verschieben. Funktioniert auch nicht.
In Apache lässt sich dies ganz einfach folgendermaßen erledigen:
<If "%{THE_REQUEST} =~ pattern">
Header set HEADER value;
</If>
Antwort1
Sie können den Header mithilfe einer zugeordneten Variable festlegen. Wenn die Variable auf eine leere Zeichenfolge festgelegt ist, wird der Header stillschweigend verworfen.
Zum Beispiel:
map $request_uri $myheader {
~^/content a_value;
}
server {
...
add_header X-CUSTOM-HEADER $myheader;
location / {
try_files $uri $uri/ /index.html;
}
}