Forzar a Apache 2.4 a almacenar en caching files con cadena de consulta utilizando mod_cache sin expirar

Necesito get mod_cache_disk para almacenar en caching un sitio que contiene cadenas de consulta. El problema es que es un producto de proveedor en IIS que estamos intentando almacenar en caching a través de mod_proxy y que no contiene los encabezados de caducidad. Me doy count de este problema viola varios RFC y es por eso que apache no lo hace por defecto.

¿Hay una manera de forzar a apache 2.4.x a caching con cadena de consulta y no caduca cabecera?

Esta configuration de caching, pero por supuesto, sin honrar? se almacena en caching el contenido incorrecto para la mayoría de los elementos.

CacheEnable disk https:// CacheEnable disk / CacheRoot /var/cache/mod_proxy/ CacheDirLevels 4 CacheDirLength 5 CacheIgnoreCacheControl On CacheIgnoreNoLastMod On CacheIgnoreHeaders None CacheMaxFileSize 100000000 CacheMinFileSize 1 CacheMaxExpire 1209600 CacheDefaultExpire 3600 CacheIgnoreQueryString On CacheStoreNoStore On CacheStorePrivate On 

Si cambio CacheIgnoreQueryString a Off comenzará a emitir errores sobre el encabezado expires.

AH00768: cache: /view.image?Id=1114 no almacenado en caching. Razón: cadena de consulta presente, pero sin time de caducidad explícito,

De acuerdo con esta respuesta la única manera de hacer esto es dejar que Apache vea los encabezados que quiere (Expires, que usted declaró, y, al parecer también Last-Modified).

El cartel de esa respuesta sugirió escribir un filter en el lado de la aplicación, pero como el suyo es un producto de proveedor, puede que no sea posible. ¿Existe la posibilidad de agregarla directamente en IIS? De lo contrario, podría tener suerte con una configuration de proxy doble: utilizar un proxy para agregar los encabezados (pero no caching), y el proxy que desde Apache (tomando los encabezados y el almacenamiento en caching).

esa es mi solución

 <IfModule mod_cache.c> CacheIgnoreNoLastMod On CacheIgnoreHeaders Set-Cookie <IfModule mod_disk_cache.c> CacheRoot D:\\apache_cache CacheEnable disk / CacheDirLevels 1 CacheDirLength 1 </IfModule> </IfModule> 

y desde el lado del backend agrega encabezado

 Cache-Control:s-maxage=1200 

s-maxage – para cachings de proxy y CDN

La solución más obvia sería quitar la cadena de consulta antes de que llegue a mod_cache .

Y el module más obvio para eso sería mod_rewrite .

Pero eso no funcionará , porque mod_cache comenzó a usar deliberadamente la versión sin cambios de la cadena de consulta en 2006 .