feat(router): add optional HTTP to HTTPS redirect

replaces #2635 
yes, it should be a 301.