Apache: Establecer encabezados globales sólo si no está ya configurado

Estoy teniendo una situación poco molesta aquí.

Tengo un server administrado por plesk. En la configuration basada en /etc/apache2/apache2.conf mod_headers y mod_expires tiene lugar. Por ejemplo:

<filesMatch "\.(jpg|jpeg|png|gif|swf)$"> Header set Cache-Control "max-age=604800, public" </filesMatch> 

Esto está funcionando bastante bien.

Tengo un problema con algunas de mis aplicaciones. Quiero a la aplicación para mantener el control sobre la caching si lo desea. Actualmente esto no es posible, porque los ajustes de cabecera se producen de forma emediatly antes de devolver la respuesta al cliente, lo que significa que después de que la aplicación haya completado todas sus acciones. Los encabezados establecidos por la aplicación se sobrescribirán.

 Header merge Cache-Controll... 

no está funcionando, ya que sólo agrega la cadena de encabezado dado. Y dudo que los browseres manejarán encabezados como éste como quisiera que:

 Cache-Control max-age=0, no-cache, no-store, must-revalidate, max-age=604800, public 

Mi pregunta ahora es: ¿Existe la posibilidad de establecer el encabezado sólo si no hay ningún contenido absolutly en el encabezado específico "campo"? No quiero que mi aplicación establezca variables de entorno, ya que una aplicación no debe cambiarse para satisfacer las necesidades de un server.

También intenté – para el propósito de la testing solamente – para desmontar el jefe vía vhost.conf para un dominio específico. Pero se ejecuta antes de la configuration del encabezado en apache2.conf, lo que significa que se sobrescribirán también.

Creo que puede sacar esto usando el Header edit . La salsa secreta es una afirmación anulada negada:

 Header edit Cache-control "^(?!.*max-age.*)(.*)" "max-age=604800,\1" 

La idea es que el ^(?!.*max-age.*)(.*) Coincide con el inicio del valor del encabezado si la cadena max-age no existe en ninguna parte del encabezado. Si la coincidencia tiene éxito (es decir, "max-age" no existe), entonces inserta "max-age = 604800", seguido del rest del encabezado original.

EDIT: Apache utiliza PCRE, por lo que es posible que tenga que utilizar $1 lugar de \1 en la cadena de reemploop.

Apache 2.4.7:

 Header setifempty Access-Control-Allow-Origin "*" 

Apache 2.2.4 a continuación

 Header append Access-Control-Allow-Origin "" Header edit Access-Control-Allow-Origin "^$" "*"