ngx_http_substitutions_filter_module icon indicating copy to clipboard operation
ngx_http_substitutions_filter_module copied to clipboard

how to keep original Last-Modified date

Open cenggel opened this issue 7 years ago • 2 comments

after apply subs_filter to js file the "Last-Modified" header removed and nginx cache config will not work always return 200 state and js file content.

who to cache subs_filtered static resource?

cenggel avatar Mar 01 '17 14:03 cenggel

This issue is simple. In ngx_http_subs_filter_module.c, line 270, ngx_http_clear_last_modified is called to unconditionally remove Last-Modified header.

if (r == r->main) {
    ngx_http_clear_content_length(r);
    ngx_http_clear_last_modified(r);
}

It is not possible to customize this behavior. While it's trivial to patch it, and pull requests are welcomed for any open source project, it looks like the project is no longer maintained. ngx_http_sub_filter_module in the mainline is NOT the same as this module, it is separately maintained, in line 271, both Last-Modified and ETag is removed.

if (!slcf->last_modified) {
    ngx_http_clear_last_modified(r);
    ngx_http_clear_etag(r);

} else {
    ngx_http_weak_etag(r);
}

You should report the problem to the upstream, fill a feature request for keeping Last-Modified and ETag, instead of reporting bugs here.

You can also use https://github.com/openresty/replace-filter-nginx-module instead, it is well-maintained by a reputable developer, @agentzh.

oxjtt5i5wm avatar May 29 '18 00:05 oxjtt5i5wm

You can use this fork: AnYiEE/ngx_http_substitutions_filter_module.

AnYiEE avatar Jan 25 '23 06:01 AnYiEE