Попробуйте поставить косую черту в ПЕРЕДНЕМ URL, тоже ...
<NavLink to={'/'+url+'/'}>Home</NavLink>
Отсутствие URL-адреса в начале означает «относительно текущего пути», а URL-адрес в начале означает «относительно имени домена»
Или, возможно, лучшим способом добиться того же результата в вашем случае было бы поставить косую черту перед foo
- например:
let url = 'localhost'=='localhost'? '/foo':''; // <=== added slash
<Router>
<NavLink to={url+'/'}>Home</NavLink>
</Router>