content negotiation and redirects