It is detecting that, but that is on the last hop after the redirect. Before the redirect, there’s no HTTP header.
curl -A Twitterbot http://vere.cc/topeka -v
* Trying 198.187.29.27...
* TCP_NODELAY set
* Connected to vere.cc (198.187.29.27) port 80 (#0)
> GET /topeka HTTP/1.1
> Host: vere.cc
> User-Agent: Twitterbot
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Wed, 24 Oct 2018 21:06:50 GMT
< Server: Apache
< Last-Modified: Sun, 14 Oct 2018 01:26:47 GMT
< Accept-Ranges: bytes
< Content-Length: 961
By comparison…
...
> GET / HTTP/2
> Host: andypiper.co.uk
> User-Agent: Twitterbot
> Accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
< HTTP/2 200
< server: nginx
< date: Wed, 24 Oct 2018 22:05:17 GMT
< content-type: text/html; charset=UTF-8 <------ THIS IS MISSING
< strict-transport-security: max-age=86400
...