I figured out what I did wrong yesterday. I thought I disabled .gz file filtering, but I used the command wrong. After an hour, I was pretty fed up with troubleshooting this
Put this in your .htaccess file in the folder where you have your sitemaps
<FilesMatch "[.]xml[.]gz$"> Header set Content-Type "application/x-gzip" Header unset Content-Encoding SetEnv no-gzip 1 RemoveOutputFilter gz </FilesMatch>
Some of these may not be required, but this is what got it working for me, so you can play with the directives if you think you need to. The important one appears to be RemoveOutputFilter.
So, the way this works is:
If a file matches the format "[.]xml[.]gz$", then apply the following rules. Note that in Regular Expressions, the "$" has a special meaning and it means the file name has to end with .xml.gz. Something like .xml.gz.exe will not work, because it doesn't end with .xml.gz exactly. The periods are inside of square brackets because periods also have a special meaning. When anything is in a square bracket, it will not have a special meaning. I don't know if that's strictly necessary for .htaccess specifically, but it works and the square brackets don't hurt anything.
I use the "\" in order to escape the ".": https://httpd.apache.org/docs/2.4/rewrite/intro.html#regex, otherwise the "." will just match any single character. The brackets are used for matching one character of a group of characters, so I guess "." and "[.]" are essentially identical.
That's the version I used:
<FilesMatch "\.xml\.gz$"> Header unset Content-Encoding </FilesMatch>
That code appears to work with all the browsers I tried: Chrome, Edge, Firefox and Opera.
The "RemoveOutputFilter" didn't seem to work for me. Isn't that way for you too? What happens if you try my version of code?