handle max age as part of the path, not a query string, because it shows up prominently in cached request headers and could be confusing