apache.htaccessmod-headers

What's the opposite of "Header append Vary User-Agent", how to remove the "User-Agent" string from "Vary"?


I know that I can add the User-Agent to the Vary http header with this line in my .htacess:

Header append Vary User-Agent

But how can I remove the User-Agent from the Vary header if it is already set?

According to the mod_headers doc there is an append option, but no equivalent "remove" option.


Solution

  • Simple answer below, but you need some shenanigans to avoid sending an empty Vary: header (try to avoid it out of paranoia)

    Header edit Vary (.*)User-Agent(.*) $1$2
    # Remove leading or trailing ',' without making things complex above
    Header edit Vary ^,?(.*),?$ $1
    # 2.4-only: remove empty Vary header
    Header unset Vary "expr=resp('Vary') =~ /^$/"
    

    x-never-match can be any unlikely-to-ever-be-used header name.