Event Response not firing anonymous user
You can't do this when the redirect is already stored in the internal page cache. Because anonymous traffic is served from this cache before any event is fired.

You have to use this kill switch: 

\Drupal::service('page_cache_kill_switch')-&gt;trigger();


If you put this in your event subscriber and clear the cache, then you prevent, that the response is cached in the internal page cache.