canonical redirect now preserves protocol