why this if? I think that we should just return no? if you redirect to the same url then you get an infinite loop, but that's a programming error