
La aplicación maneja todas las rutas. Entonces este bloque de configuración básica funciona:
location / {
try_files $uri $uri/ /index.html;
}
El problema es que quiero agregar un encabezado personalizado cada vez que un visitante solicita un determinado URI. Por ejemplo, /content
. Bueno, eso debe ser tan fácil como:
location ~ ^/content {
try_files $uri $uri/ /index.html;
add_header X-CUSTOM-HEADER value;
}
Pero eso no funciona. Nginx no está creando ese encabezado. Luego, intenté eliminar la try_files
directiva delcontenidobloquear, pero obviamente eso no funciona ya que no hay /content
una carpeta "real" en el directorio raíz. Por lo tanto, nginx arrojará404 No encontradoerror.
También intenté mover ese bloque dentro del bloque de ubicación raíz. Tampoco funciona.
En Apache, esto se puede hacer fácilmente usando esto:
<If "%{THE_REQUEST} =~ pattern">
Header set HEADER value;
</If>
Respuesta1
Puede configurar el encabezado usando una variable asignada. Si la variable se establece en una cadena vacía, el encabezado se descartará silenciosamente.
Por ejemplo:
map $request_uri $myheader {
~^/content a_value;
}
server {
...
add_header X-CUSTOM-HEADER $myheader;
location / {
try_files $uri $uri/ /index.html;
}
}